miniAutoGen
1.0.0

Miniautogen是一個創新的開源庫,為大型語言模型(LLMS)的下一代應用設計。側重於實現多代理對話,以其輕巧和靈活的結構而聞名。對於旨在探索和擴展對話式AI前沿的開發人員和研究人員來說,這是理想的選擇。
從Autogen汲取靈感,Miniautogen提供了一套全面的工具:
chat ):促進了多代理對話的創建和管理。chatadmin ):確保代理的有效同步和管理。agent ):根據特定需求為量身定制代理提供靈活性。pipeline ):自動化並簡化代理操作,增強可擴展性和維護。結合LITELLM,Miniautogen已經與超過100個LLM集成了。使用基岩,Azure,Openai,Cohere,Anthropic,Ollama,Sagemaker,Huggingface,Replicate。
agent管道。探索我們在此處提供的各種預製組件。
安裝pip install miniautogen
與LLM聊天
#Initializing LLM Clients
import os
os.environ["OPENAI_API_KEY"] = "your-openai-key"
from miniautogen.llms.llm_client import LiteLLMClient
openai_client = LiteLLMClient(model='gpt-3.5-turbo-16k')
# Building the Chat Environment
from miniautogen.chat.chat import Chat
from miniautogen.agent.agent import Agent
from miniautogen.chat.chatadmin import ChatAdmin
from miniautogen.pipeline.pipeline import Pipeline
from miniautogen.pipeline.components.components import (
UserResponseComponent, AgentReplyComponent, TerminateChatComponent,
Jinja2SingleTemplateComponent, LLMResponseComponent, NextAgentSelectorComponent
)
# Define a Jinja2 template for formatting messages
template_str = """
[{"role": "system", "content": "{{ agent.role }}"}{% for message in messages %},
{% if message.sender_id == agent.agent_id %}
{"role": "assistant", "content": {{ message.message | tojson | safe }}}
{% else %}
{"role": "user", "content": {{ message.message | tojson | safe }}}
{% endif %}
{% endfor %}]
"""
# Initialize Jinja2 component with the template
jinja_component = Jinja2SingleTemplateComponent()
jinja_component.set_template_str(template_str)
# Set up pipelines for different components
pipeline_user = Pipeline([UserResponseComponent()])
pipeline_jinja = Pipeline([jinja_component, LLMResponseComponent(litellm_client)])
pipeline_admin = Pipeline([NextAgentSelectorComponent(), AgentReplyComponent(), TerminateChatComponent()])
# Create the chat environment
chat = Chat()
# Define agents with JSON data
json_data = {'agent_id': 'Bruno', 'name': 'Bruno', 'role': 'user'}
agent1 = Agent.from_json(json_data)
agent1.pipeline = pipeline_user # Assign the user pipeline to agent1
agent2 = Agent("dev", "Carlos", "Python Senior Developer")
agent2.pipeline = pipeline_jinja # Assign the LLM pipeline to agent2
# Add agents to the chat
chat.add_agent(agent1)
chat.add_agent(agent2)
# Add test messages to the chat
json_messages = [{'sender_id': 'Bruno', 'message': 'It’s a test, don’t worry'}]
chat.add_messages(json_messages)
# Initialize and configure ChatAdmin
chat_admin = ChatAdmin("admin", "Admin", "admin_role", pipeline_admin, chat, 10)
#running the chat
chat_admin.run()
多代理對話代表涉及多種代理的相互作用,無論是自主還是人類,都具有自主性和專業能力。他們共同努力解決複雜的問題,共享信息或執行特定的任務。
在此示例中,我們將在兩個代理之間建立對話:一個扮演產品主的角色,另一個扮演Python開發微生物原成分的專家。
該測試的主要目的是證明微型植物在創建和協調多代理對話方面的靈活性,易度性和效率,並且得益於圖書館的靈活設計,以及開發新組件的簡單性。
完整的對話歷史: chat_history.md
在此處查看筆記本
有關其他見解和靈感,請訪問我們的示例文件夾。在這裡,您會發現各種場景,這些情況在不同情況下展示了微生物原的多功能性和能力。
我們邀請AI愛好者,開發人員和研究人員貢獻和塑造多代理對話的未來。您的專業知識可以幫助發展微型植物,從而創造更強大和多樣化的應用。
查看更多:貢獻
微型原子:開創智能,互動對話的未來。