DemoGPT AgentHub
从提示生成 Streamlit 应用,并可组合工具与 RAG 构建 Python 智能体。
- Star 数
- ★ 1.9k
- 最近更新
- 5 个月前
- License
- MIT
- 主语言
- Python
- FA 评分
- 30/100 · 缺口较多
30 秒速览
- 可在哪里用
- 兼容但需适配OpenAI API
- 开始前需要
- 典型场景
- 希望把产品想法快速变成可运行 Streamlit 原型的 Python 开发者,可用 DemoGPT 的 instruction、title 和阶段式代码输出生成应用代码。
- 主要局限
- 文档中的主要模型接口是 OpenAIChatModel,示例使用 gpt-3.5-turbo 或 gpt-4o-mini,未给出其他提供商的适配配置。
这个 Agent 能做什么,适合哪些场景?
DemoGPT 是一个 Python 项目,包含用于从自然语言指令生成 LangChain 与 Streamlit 应用的 DemoGPT 管道,以及用于构建工具调用智能体的 DemoGPT AgentHub。其生成管道依次执行计划生成、任务创建、代码片段生成和最终代码组装,并以阶段 JSON 和最终 Streamlit 代码作为输出。AgentHub 提供 ToolCallingAgent、ReactAgent、BaseRAG、OpenAIChatModel、BaseTool 及一组内置工具。项目既可通过 pip 安装后运行 demogpt,也可作为 Python 库调用,或从源码用 Streamlit 启动。RAG 可将 PDF、TXT、CSV、JSON 文件加入向量库,并在 Chroma、Pinecone 或 FAISS 之间选择。
DemoGPT 的 Python 接口通过 DemoGPT(model_name="gpt-3.5-turbo") 接收 instruction 和 title,并在迭代过程中产出各生成阶段的 JSON;完成阶段提供最终 code。生成流程包括计划生成、由计划和指令创建任务、将任务转换为代码片段,以及组装最终的 Streamlit 应用代码。AgentHub 中可继承 BaseTool 编写 run 方法,再将工具和 OpenAIChatModel 传给 ToolCallingAgent 或 ReactAgent;README 列出的内置工具包括 TavilySearchTool、WeatherTool、PythonTool、BashTool、WikipediaTool、ArxivTool 与 YoloTool 等。BaseRAG 可通过 add_files 读取 PDF、TXT、CSV、JSON,使用 chroma、pinecone 或 faiss 向量库保存和检索内容;它也可作为 ReactAgent 的一个工具。
- 希望把产品想法快速变成可运行 Streamlit 原型的 Python 开发者,可用 DemoGPT 的 instruction、title 和阶段式代码输出生成应用代码。
- 需要为内部知识库问答加入文档检索的开发者,可用 BaseRAG 索引 PDF、TXT、CSV 或 JSON,再通过 run 查询内容。
- 要把搜索、天气和计算组合到一个问答工作流中的开发者,可将 TavilySearchTool、WeatherTool 和 PythonTool 传给 ToolCallingAgent 或 ReactAgent。
- 需要接入自有业务函数的 Python 团队,可继承 BaseTool,定义名称、描述和 run 方法,再把实例注册给智能体。
- 需要对图片 URL 做目标识别的开发者,可使用 YoloTool 配合 ReactAgent 获取检测到的对象和坐标。
如何安装或部署这个 Agent?
安装包:
pip install demogpt从源码安装:
git clone https://github.com/melih-unsal/DemoGPT.git
cd DemoGPTpip install .
README 的 Python 示例使用 OpenAIChatModel;若环境变量中没有 OPENAI_API_KEY,需要在 DemoGPT 初始化时通过 openai_api_key 参数提供密钥。
如何使用这个 Agent?
安装包后可运行:
demogpt
作为库使用:
from demogpt import DemoGPT
agent = DemoGPT(model_name="gpt-3.5-turbo")for phase in agent(instruction="Your instruction here", title="Your title here"):
print(phase)从源码启动界面:
streamlit run demogpt/app.py要创建工具调用智能体,可用 OpenAIChatModel(model_name="gpt-4o-mini") 与工具实例创建 ToolCallingAgent 或 ReactAgent,然后调用 agent.run(query)。
这个 Agent 有哪些优点和局限?
- 同时提供提示到 Streamlit 代码的生成管道和可编程的 AgentHub,而非只提供单一聊天入口。
- BaseRAG 明确支持 PDF、TXT、CSV、JSON 输入,以及 Chroma、Pinecone、FAISS 三种向量库选项。
- BaseTool 的继承式扩展点使自定义工具可直接接入 ToolCallingAgent 和 ReactAgent。
- README 列出搜索、天气、Python、Bash、学术检索、网页请求和 YOLO 图像检测等可组合工具。
- 文档中的主要模型接口是 OpenAIChatModel,示例使用 gpt-3.5-turbo 或 gpt-4o-mini,未给出其他提供商的适配配置。
- 使用 OpenAI 示例时需要 OPENAI_API_KEY 或 openai_api_key;外部搜索、天气及 URL 工具也意味着网络依赖。
- RAG 示例会在 persistent_path 写入向量库,且 reset_vectorstore=True 会移除已有向量库,采用前需审查存储路径。
- 待办事项仍列有剩余 LangChain 任务、自我改进策略、Gorilla、Rapid API、Llama2 和公共检索数据库等未完成工作。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| DemoGPT AgentHub 当前 | 30 · 缺口较多 | ★ 1.9k | 5 个月前 | Python | OpenAI API |
| LangChain 与 LangGraph 智能体实战课 | 32 · 缺口较多 | ★ 1.7k | 21 天前 | — | — |
| ai4j — Java AI Agentic 开发套件 | 52 · 缺口较多 | ★ 429 | 4 天前 | HTML | OpenAI API · Claude API |
| Agent Craft 智能体教程 | 49 · 缺口较多 | ★ 492 | 今天 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库未提供权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的说明。所有信任相关标准均未得到支持,因此得分为0。
证据显示:README和代码示例在工具名称和用法上基本一致,但存在不一致之处,如示例中使用了未定义的变量(如search_tool、weather_tool),且测试文件仅覆盖了LLM和RAG,未覆盖其他组件。依赖声明在pyproject.toml中,但未提供版本锁定或安全审计。失败消息未在文档中说明。因此,self_consistency得分为1,dependency_availability得分为1,failure_messages得分为0。
证据显示:README提供了多种使用场景(如创建工具、使用ReactAgent、RAG等),并给出了示例,因此audience_and_scenarios得分为2。capability_boundaries仅部分说明,如工具列表和RAG支持,但未明确边界。trigger_precision仅通过示例展示,未系统说明。environment_fit仅提及Python版本和依赖,未详细说明。因此,capability_boundaries、trigger_precision、environment_fit各得1分。
证据显示:README结构清晰,包含目录、安装、使用等,因此information_architecture得分为2。install_notes提供了pip安装和源码安装说明,得分为2。naming_stability未明确说明,但版本号存在,得分为1。examples_and_faq提供了多个示例,但无FAQ,得分为2。known_limitations未明确列出,得分为1。license为MIT,得分为2。versioning_changelog未提供,得分为1。maintenance_responsibility未明确,得分为1。
证据显示:output_usability通过示例展示了输出格式,得分为2。marginal_value提供了自动化生成Agent的能力,但未与其他工具对比,得分为2。cost_benefit未提供性能或成本数据,得分为1。
证据显示:claim_traceability部分,README中的声明未提供具体证据,得分为1。cross_source_corroboration未提供外部验证,得分为1。fact_inference_separation未明确区分事实和推断,得分为1。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 示例代码中使用了未定义的变量(如search_tool、weather_tool),可能导致用户复制后运行失败。
- 依赖未固定版本,存在供应链安全风险。
- 未提供安全审计或权限最小化说明,使用内置工具(如BashTool、PythonTool)时需谨慎。