...
/مشروع التخرج: الوظائف
مشروع التخرج: الوظائف
تعرف على كيفية إعداد الوظائف الرئيسية، وتحديد حالات الجلسة، وإعداد الوظيفة التي ستقوم بتحميل دليل المستخدم ومعالجته.
سنغطي ما يلي...
نواصل هذا المشروع النهائي من خلال إعداد الوظائف الرئيسية لروبوتات الدردشة الخاصة بنا، وتحديد حالات الجلسة التي ستبقى في الذاكرة طوال جلسة تفاعل المستخدم، وأخيرًا، إعداد الوظيفة التي ستحمل دليل المستخدم وتعالجه وتعرض صور تويوتا.
Step 5: Setting up chatbot.py
file
سنقوم الآن بالمرور على تكوين ملف chatbot.py
خطوة بخطوة:
import streamlit as stfrom src.load_file import load_filefrom src.rewrite_query import rewrite_user_queryfrom src.retriever import build_vector_store, retrieve_chunks_from_vector_store, retrieve_historyfrom src.generator import generate_answer# Load the user manual fileuser_manual_content = load_file()# If load is successfulif user_manual_content:try:###################################### Display the title ######################################st.title(":rainbow[TOYOTA HIGHLANDER INTERACTIVE BOT]")st.write('')####################### Set a clear conversation button on the side menu ######################clear_conversation = st.sidebar.button(label='Clear conversation',key='clear_conversation',use_container_width=True)if clear_conversation:st.session_state.messages = []############################### Display the chatbot input space ###############################user_input = st.chat_input('Ask me a question about the Toyota Highlander...',max_chars=1500,key='user_input')######################### Build the vector store to store the vectors #########################vector_store = build_vector_store(user_manual_content)######################### Check and display any previous chat history #########################history = retrieve_history()if user_input:############################ Append the user input to the chat ############################st.session_state.messages.append({"role": "user", "content": user_input})#################### Rewrite the user query for better input to the LLM ###################re_written_query = rewrite_user_query(user_input)###################### Retrieve the relevant chunks from the database #####################relevant_chunks = retrieve_chunks_from_vector_store(vector_store, re_written_query)######################### Generate a final answer using the LLM ##########################answer = generate_answer(re_written_query, relevant_chunks)##################### Display the answer with the relevant information ####################col_left, col_right = st.columns(2)with col_left:with st.expander(label='Re-written user query', expanded=False):st.write(re_written_query)with col_right:with st.expander(label='Retrieved relevant text from the car user manual', expanded=False):st.write(relevant_chunks)# Handle the exception if the user manual is not loadedexcept Exception as e:print(e)st.error("Sorry, an error occurred.")
السطر 1: نقوم باستيراد Streamlit لبناء واجهة المستخدم.
السطر 2: نقوم باستيراد وظيفة لتحميل دليل مستخدم تويوتا.
السطر 3: نقوم باستيراد وظيفة لإعادة كتابة استعلامات المستخدم.
السطر 4: نقوم باستيراد وظائف لبناء متجر المتجهات، واسترجاع الأجزاء ذات الصلة، وجلب سجل الدردشة.
السطر 5: نقوم باستيراد دالة لتوليد إجابة باستخدام LLM.
السطر 8: نقوم بتحميل محتوى دليل مستخدم تويوتا باستخدام وظيفة
load_file
.السطر 11: نتحقق من أن دليل المستخدم ليس فارغًا.
السطر 12 : قمنا بتعيين عامل
try
في ...