Search⌘ K
AI Features

دمج روبوتات الدردشة مع واجهة Streamlit

تعرّف على كيفية دمج واجهة الدردشة Streamlit مع أنظمة إدارة التعلم.

مقدمة لعناصر الدردشة

توفر Streamlit عنصرين للدردشة مصممين خصيصًا بناء روبوتات محادثة تفاعلية. تتيح لنا هذه العناصر بناء حوار أسئلة وأجوبة بين المستخدم ونظام إدارة التعلم.

  • st.chat_input : يعرض هذا عنصر إدخال دردشة يسمح للمستخدم بكتابة الاستفسارات.

  • st.chat_message : يعرض هذا حاوية رسائل الدردشة التي تسمح للتطبيق بعرض الرسائل من المستخدم أو من نظام إدارة التعلم.

  • st.status : يعرض هذا إخراج العمليات طويلة الأمد واستدعاءات واجهة برمجة API الخارجية حتى يتمكن المستخدم من الحصول على تحديثات أثناء عمل برنامج الدردشة الآلي على استجابة.

فهم عملية البرمجة

لنقم بناء روبوت محادثة باستخدام Streamlit و Groq و Llama LLM. سنستعرض أولاً الكود لفهم كيفية عمل العناصر والوظائف المختلفة.

سنبدأ بكتابة الكود الرئيسيapp.py نص برمجي:

Python
import streamlit as st
import pandas as pd
from chatbot import generate_answer
# Set the general configuration of the main page
st.set_page_config(
page_title="Chatbot",
page_icon="🧊",
layout="wide",
initial_sidebar_state="expanded"
)
# Set the title
st.title(":rainbow[LLM chatbot]")
# Initialize chat history
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages from history on app rerun
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# Accept user input
if prompt := st.chat_input("How can I help you today?"):
# Add user message to chat history
st.session_state.messages.append({"role": "user", "content": prompt})
# Display user message in chat message container
with st.chat_message("user"):
st.markdown(prompt)
# Display assistant response in chat message container
response = generate_answer(prompt)
st.session_state.messages.append({"role": "assistant", "content": response})

في هذا الكود، نقوم بتنفيذ الخطوات التالية:

  • السطران 1-2 : نقوم باستيراد المكتبات اللازمة، بما في ذلك ...