Autogen เป็นเฟรมเวิร์กโอเพนซอร์ซที่ช่วยให้การพัฒนาแอปพลิเคชัน AI สนทนาโดยใช้ตัวแทนหลายตัว
Chroma DB เป็นฐานข้อมูลเวกเตอร์โอเพ่นซอร์สสำหรับการจัดเก็บและดึงการฝังเวกเตอร์
virtualenv -p python3.11 env_namepython -m venv env_nameenv_name/scripts/activate pip install -U "pyautogen[retrievechat]" chromadb
-U บอกให้ PIP อัพเกรดแพ็คเกจที่ติดตั้งไว้แล้วเป็นเวอร์ชันล่าสุดก่อนที่จะติดตั้ง"pyautogen[retrievechat]" ติดตั้งแพ็คเกจ Pyautogen และยังติดตั้งคุณสมบัติพิเศษ "RetrieveChat" เสริมของแพ็คเกจนั้น export AUTOGEN_USE_DOCKER=False
$Env:AUTOGEN_USE_DOCKER="False"
การส่งออก AUTOGEN_USE_DOCKER=False บอกให้ Pyautogen เรียกใช้งานโดยตรงบนโฮสต์แทนที่จะใช้คอนเทนเนอร์ Docker มันข้ามการพึ่งพานักเทียบท่า แต่ยังสูญเสียผลประโยชน์จากการแยกบางส่วนของ Docker
export OPENAI_API_KEY=Fxxxxxxxxxxxxxxxxxxxxxxxxx
$Env:OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
app.py python app.py
ไฟล์รหัสนี้กำหนดระบบ chatbot โดยใช้ไลบรารี Autogen และ Chromadb นี่คือการแยกแยะรหัสทีละขั้นตอน:
ขั้นตอนแรกคือการนำเข้าไลบรารีที่จำเป็น ในกรณีนี้เราใช้ Autogen และ Chromadb เพื่อสร้าง chatbot ที่สามารถดึงข้อมูลจากฐานข้อมูลและสร้างการตอบกลับตามรูปแบบภาษา
import autogen
import chromadbต่อไปเรากำหนดผู้ช่วย chatbot โดยใช้คลาส Assistantagent จาก Autogen Library คลาสนี้ใช้ชื่อการกำหนดค่าโมเดลภาษาและข้อความระบบเป็นอินพุต
assistant = AssistantAgent (
name = "my_assistant" ,
llm_config = llm_config_proxy ,
system_message = "You are a helpful assistant. Provide accurate answers based on the context. Respond 'Unsure about answer' if uncertain."
)นอกจากนี้เรายังกำหนดผู้ใช้โดยใช้คลาส RetrieveUserProxyagent จากโมดูล Autogen.agentChat.Contrib คลาสนี้ใช้ชื่อ, โหมดอินพุตของมนุษย์, ข้อความระบบ, จำนวนสูงสุดของการเติมเงินอัตโนมัติติดต่อกันและการกำหนดค่าสำหรับการดึงข้อมูลจากฐานข้อมูลเป็นอินพุต
user = RetrieveUserProxyAgent (
name = "me_user" ,
human_input_mode = "NEVER" ,
system_message = "Assistant who has extra content retrieval power for solving difficult problems." ,
max_consecutive_auto_reply = 10 ,
retrieve_config = {
"task" : "code" ,
"docs_path" : [ './docs/autogen.pdf' ],
"chunk_token_size" : 1000 ,
"model" : config_list [ 0 ][ "model" ],
"client" : chromadb . PersistentClient ( path = '/tmp/chromadb' ),
"collection_name" : "pdfreader" ,
"get_or_create" : True ,
},
code_execution_config = { "work_dir" : "coding" },
)เรากำหนดคำถามของผู้ใช้หรือพรอมต์เป็นตัวแปรสตริง
user_question = """
Compose a short blog post showcasing how AutoGen is revolutionizing the future of Generative AI
through the collaboration of various agents. Craft an introduction, main body, and a compelling
conclusion. Encourage readers to share the post. Keep the post under 500 words.
"""ในที่สุดเราเริ่มเซสชันการแชทระหว่างผู้ใช้และ chatbot โดยใช้วิธีการเริ่มต้นของคลาส retrieveuserproxyagent
user . initiate_chat ( assistant , problem = user_question )โดยรวมแล้วไฟล์รหัสนี้กำหนดระบบ chatbot ที่สามารถตอบคำถามของผู้ใช้หรือแจ้งเตือนโดยการดึงข้อมูลจากฐานข้อมูลและสร้างการตอบกลับตามรูปแบบภาษา chatbot ยังสามารถเรียกใช้รหัสและให้คำตอบตามบริบทของคำถามของผู้ใช้