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爱好者,开发人员和研究人员贡献和塑造多代理对话的未来。您的专业知识可以帮助发展微型植物,从而创造更强大和多样化的应用。
查看更多:贡献
微型原子:开创智能,互动对话的未来。