综合介绍
Bambo是一个新型的代理框架,与主流框架相比,它更加轻量和灵活,能够处理各种负载任务。Bambo通过定义工具目录中的所有工具,并使用异步自定义函数来实现高效的代理功能。用户可以在llm_client.py文件中定义所需调用的模型和客户端参数,然后在示例文件夹中创建自己的测试脚本。Bambo的目标是提供一个高效、灵活的代理解决方案,适用于各种应用场景。
传统Agent框架每个角色都是独立的Agent,需要一个"主管"协调工作,角色切换要经过复杂的交接流程,LLM调用次数比较多,导致响应速度和流畅性不佳。
Bambo通过角色扮演的方式解决此问题。基于Bambo,实现了notebooklm类似的效果,效果中没有TTS,如果需要,可以在测试脚本中添加相应的代码。
功能列表
- 轻量灵活的代理框架
- 处理各种负载任务
- 支持异步自定义函数
- 定义和调用所需的模型和客户端参数
- 创建和运行测试脚本
- 多角色场景支持
- 代码执行和分析功能
使用帮助
安装流程
- 克隆仓库:
git clone https://github.com/LB-Young/Bambo.git cd Bambo
- 安装依赖:
pip install -r requirements.txt
- 手动安装PyTorch(如有需要):
pip3 install torch torchvision torchaudio
设置和配置
- 定义工具目录中的所有工具,并确保自定义函数是异步的。
- 在llm_client.py文件中定义所需调用的模型和客户端参数。
- 在示例文件夹中创建自己的测试脚本,定义所需的角色和工具。
- 初始化Bambo对象并传入所需参数:
from src.bambo import Bambo from src.llm_client import client, model from src.tools.code_execute import code_execute roles = { "finance_expert": "金融专家", "law_expert": "法律专家", "medical_expert": "医疗专家", "computer_expert": "计算机专家", } tools = {} bambo = Bambo(client=client, bambo_role=None, roles=roles, tools=tools, agents=None, model=model) query = "我是高考生,现在想要选专业,但是不知道选什么专业。请你介绍一下金融、法律和计算机三个专业分别有什么优点和缺点。" async for item in bambo.execute(query=query): print(item, end="", flush=True)
使用Bambo
- 运行Bambo接口:
python examples/notebooklm.py
- 或在后台运行代理:
nohup python examples/multi_roles.py &> multi_roles.log &
- 交互式菜单将引导您完成以下选项:
- 创建/更新训练数据集
- 训练模型
- 运行代理
- 运行完整工作流程
- 退出
配置
编辑config.py以自定义:
- 模型选择
- 训练超参数
- 代理设置
- 响应模板
- 任务过滤
Bambo提供多种方式过滤处理的任务:
- 标签(自动)
- 黑名单(手动)