Autogen adalah kerangka kerja open-source yang memungkinkan pengembangan aplikasi AI percakapan menggunakan beberapa agen.
Chroma DB adalah database vektor open-source untuk menyimpan dan mengambil embeddings vektor.
virtualenv -p python3.11 env_namepython -m venv env_nameenv_name/scripts/activate pip install -U "pyautogen[retrievechat]" chromadb
-U memberi tahu PIP untuk meningkatkan paket yang sudah diinstal ke versi terbaru mereka sebelum menginstal."pyautogen[retrievechat]" memasang paket pyautogen dan juga menginstal fitur tambahan opsional "retrievechat" dari paket itu export AUTOGEN_USE_DOCKER=False
$Env:AUTOGEN_USE_DOCKER="False"
Mengekspor AUTOGEN_USE_DOCKER=False memberi tahu pyautogen untuk menjalankan tugasnya secara langsung pada host daripada menggunakan wadah Docker. Ini melewati ketergantungan Docker tetapi juga kehilangan beberapa manfaat isolasi yang disediakan Docker.
export OPENAI_API_KEY=Fxxxxxxxxxxxxxxxxxxxxxxxxx
$Env:OPENAI_API_KEY="xxxxxxxxxxxxxxxxxxxxxxxxx"
app.py python app.py
File kode ini mendefinisikan sistem chatbot menggunakan pustaka autogen dan chromadb. Berikut ini adalah kerusakan selangkah demi selangkah dari kode:
Langkah pertama adalah mengimpor perpustakaan yang diperlukan. Dalam hal ini, kami menggunakan Autogen dan Chromadb untuk membuat chatbot yang dapat mengambil informasi dari database dan menghasilkan respons berdasarkan model bahasa.
import autogen
import chromadbSelanjutnya, kami mendefinisikan asisten chatbot menggunakan kelas asisten dari perpustakaan autogen. Kelas ini mengambil nama, konfigurasi model bahasa, dan pesan sistem sebagai input.
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."
)Kami juga mendefinisikan pengguna menggunakan kelas retrieveUserProxyAgent dari modul autogen.agentchat.contrib. Kelas ini mengambil nama, mode input manusia, pesan sistem, jumlah maksimum penggantian otomatis berturut-turut, dan konfigurasi untuk mengambil informasi dari database sebagai input.
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" },
)Kami mendefinisikan pertanyaan pengguna atau meminta sebagai variabel string.
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.
"""Akhirnya, kami memulai sesi obrolan antara pengguna dan chatbot menggunakan metode initiate_chat dari kelas RetrieveUserProxyAgent.
user . initiate_chat ( assistant , problem = user_question )Secara keseluruhan, file kode ini mendefinisikan sistem chatbot yang dapat menanggapi pertanyaan pengguna atau meminta dengan mengambil informasi dari database dan menghasilkan tanggapan berdasarkan model bahasa. Chatbot juga dapat menjalankan kode dan memberikan jawaban berdasarkan konteks pertanyaan pengguna.