1 分•作者: bpierre•6 个月前
返回首页
最新
1 分•作者: ianrahman•6 个月前
1 分•作者: Liriel•6 个月前
1 分•作者: tonymet•6 个月前
1 分•作者: EA-3167•6 个月前
1 分•作者: jmsflknr•6 个月前
2 分•作者: ibobev•6 个月前
1 分•作者: domofutu•6 个月前
2 分•作者: laminarflow027•6 个月前
在这篇文章中,我们记录了一些实验的结果,比较了原始的图 RAG(仅单次 text2cypher)与路由代理图 RAG 方法,后者可以调用向量搜索工具以及 text2cypher。路由代理使用 LLM 来决定调用哪个向量搜索工具,这取决于问题中识别出的术语,并且效果很好。
结果表明,像 `gpt-4.1` 这样的最新前沿 LLM 和可靠的“老将” `gemini-2.0-flash` 能够可靠且可重复地生成高质量的 Cypher 代码,只需进行一些提示工程,以确保图模式在 text2cypher 提示中格式良好。在一组包含 10 个测试查询(这些查询适度复杂,需要从知识图中检索路径)中,当将路由代理添加到工作流程以增强原始图 RAG 时,`gpt-4.1` 和 `gemini-2.0-flash` 通过了所有测试,生成了正确的答案。
提示工程使用 BAML 完成(一种编程语言,可以简化提示 LLM 并从它们那里获得结构化输出,适用于所有实验)。事实上,知识图本身是使用 BAML 提示构建的,这些提示从上游的非结构化数据中提取实体和关系。
此工作流程的下一个逻辑步骤是构建更复杂的代理循环,这些循环可以运行多步 Cypher 查询,其结果可以合并以回答更难的问题(类似于人类处理问题的方式)。测试和评估的一般原则也适用于此。 看来进一步探索这些方法很有前景!
2 分•作者: althea_tx•6 个月前
1 分•作者: alephnerd•6 个月前
1 分•作者: geox•6 个月前
2 分•作者: tycoop81•6 个月前
1 分•作者: cryophobic•6 个月前
我为 Tally 构建了一个 MCP 服务器,它弥合了他们复杂的 API 和简单的自然语言命令之间的差距。
作为一个患有 ADHD 的人,我构建这个是因为在文档、表单构建器和实际工作之间切换上下文会破坏我的工作流程。现在我可以保持在一个对话中,只需描述我需要什么即可。
有趣的的技术挑战:
1. API 复杂性抽象
Tally 的 API 需要深度嵌套的对象来表示简单的字段。一个电子邮件字段需要大约 10 个带有 UUID 的嵌套对象。我构建了一个翻译层,因此用户只需用自然语言说“添加一个电子邮件字段”,服务器就会在幕后处理复杂的结构。
2. 安全的批量操作
对于破坏性操作,我实现了一个预览-确认模式。服务器在预览期间生成一个确认令牌,该令牌必须传回才能执行。这可以防止意外的大规模删除,同时保持对话流程的自然性。
3. 智能速率限制
服务器监控 API 响应并动态调整其行为。当达到速率限制时,它会自动减小批量大小并在请求之间添加延迟。增加了随机化,以防止多个实例同时访问 API。
4. 贯穿始终的类型安全
完整的 TypeScript,并对 MCP 消息和 Tally API 响应进行运行时验证。这在开发过程中发现了几个未记录的 API 缺陷。
性能说明:
* 批量创建 100 个表单:大约 12 秒,使用批量操作
* 单独创建 100 个表单:大约 5 分钟,由于速率限制
* 人工创建 100 个表单:可能需要一整周的令人麻木的点击
* 对 10K 响应的提交分析:大约 3 秒
代码已获得 ISC 许可:[https://github.com/learnwithcc/tally-mcp](https://github.com/learnwithcc/tally-mcp)
这尤其有助于当您需要创建多个相似的表单,但您的大脑会抵制重复性任务时。很好奇其他人是否正在构建 MCP 服务器,以及您正在优化哪些工作流程。
也对关于 MCP 与传统 CLI 工具的看法感兴趣。对于简单操作,对话界面较慢,但对于复杂、多步骤的任务(您可能忘记确切的语法)来说,它要好得多。
1 分•作者: platunit10•6 个月前
1 分•作者: gk1•6 个月前
1 分•作者: smartmic•6 个月前
1 分•作者: sircalvin•6 个月前
1 分•作者: ditegashi•6 个月前
1 分•作者: alanrigby•6 个月前