ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AutoGPT 平台 Ask Wolfram 集成详解:基于 Wolfram Alpha LLM API 的问答与计算块

AutoGPT 平台 Ask Wolfram 集成详解:基于 Wolfram Alpha LLM API 的问答与计算块 AutoGPT 平台 Ask Wolfram 集成详解基于 Wolfram Alpha LLM API 的问答与计算块【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPTAutoGPT Platform 提供可视化 Agent 编排能力其中「Ask Wolfram」块封装了 Wolfram Alpha 的计算知识引擎接口让你在自定义工作流里直接用自然语言完成数学、科学、地理等事实性问答与复杂计算。阅读本文后你将掌握该块的定位、输入输出契约、底层 HTTP 调用实现、凭据配置方法以及将其接入业务流的实践方案。块定位是什么与解决什么问题在 Wolfram 集成文档 中该集成被概括为Blocks for querying Wolfram Alphas computational knowledge engine.即针对 Wolfram Alpha「计算知识引擎」的查询块族。当前仓库只落地了一个块Ask Wolfram用于向 Wolfram Alpha 提出自然语言问题并返回可直接展示或继续参与流程处理的计算结果。从功能上看它属于「搜索引擎 / 信息检索」类能力在 docs/integrations/README.md 的Search and Information Retrieval分组中它与其他信息检索块Exa 系列等并列同时它已被登记进文档导航 docs/integrations/SUMMARY.md可在侧边栏按「Wolfram LLM API」条目索引到。适用场景场景说明事实性问答面向数学、科学、地理等确定性事实提问获取准确答案计算与换算复杂数学运算、单位换算、公式求值数据查询人口统计、化学属性、历史日期等结构化事实数据需要注意Wolfram Alpha 擅长的是可计算的确定性知识而非开放式创作或主观观点因此它适合作为 Agent 流程中的算力/知识外挂节点输出结果是纯文本字符串plain string便于拼接、渲染或交给下游 LLM 进一步加工。块的输入与输出契约按 关联文档 的声明Ask Wolfram 块契约如下。Inputs输入描述类型是否必填question要提出的问题str是另外从源码实现看该块还隐含一个必选字段credentialsWolfram Alpha 凭据见下文「凭据配置」一节。Outputs输出描述类型error操作失败时的错误信息stranswer问题的计算结果str文档把error与answer并列声明为两个输出端口。需要指出的是详见源码解析一节当请求失败时底层实现抛出的异常会由执行器转为错误信号正常路径上真正产出的是answer文本。源码级实现解析仓库中该集成仅有少量源码文件链路非常清晰是理解 AutoGPT Platform 外部 API 块开发范式的极佳样例块定义autogpt_platform/backend/backend/blocks/wolfram/llm_api.pyHTTP 调用autogpt_platform/backend/backend/blocks/wolfram/_api.pyProvider 声明与凭据元数据块定义文件的开头先声明了 Wolfram 作为凭据提供者providerwolfram ( ProviderBuilder(wolfram) .with_description(Computational knowledge engine) .with_api_key(WOLFRAM_APP_ID, Wolfram Alpha App ID) .with_base_cost(1, BlockCostType.RUN) .build() )这段代码包含三层关键信息环境变量约定外部服务名wolframAPI Key 环境变量名为WOLFRAM_APP_ID对应 Wolfram Alpha 开发者控制台的 App ID并带有人类可读名称 Wolfram Alpha App ID计费成本每次执行BlockCostType.RUN的基础成本为 1 个成本单位凭据字段生成wolfram.credentials_field(...)随后被嵌入输入 schemaclass Input(BlockSchemaInput): credentials: CredentialsMetaInput wolfram.credentials_field( descriptionWolfram Alpha API credentials ) question: str SchemaField(descriptionThe question to ask)在可视化编辑器中连接该块时会弹出凭据配置用户选择或新建 Wolfram 凭据后即可在后续所有运行中复用。块本体与运行入口class AskWolframBlock(Block): def __init__(self): super().__init__( idb7710ce4-68ef-4e82-9a2f-f0b874ef9c7d, descriptionAsk Wolfram Alpha a question, categories{BlockCategory.SEARCH}, input_schemaself.Input, output_schemaself.Output, ) async def run( self, input_data: Input, *, credentials: APIKeyCredentials, **kwargs ) - BlockOutput: answer await llm_api_call(credentials, input_data.question) yield answer, answer要点固定块 IDb7710ce4-68ef-4e82-9a2f-f0b874ef9c7d用于持久化工作流对块的引用不应改动分类BlockCategory.SEARCH与上文文档分组中的 Search and Information Retrieval 一致异步执行run是 async 方法通过yield answer, answer产出输出这是标准BlockOutput流式写法凭据注入声明为 APIKeyCredentials 后_api.py里通过credentials.api_key.get_secret_value()拿到密钥明文并拼进请求参数。底层 HTTP 调用核心逻辑集中在 _api.pyasync def llm_api_call(credentials: APIKeyCredentials, question: str) - str: params {appid: credentials.api_key.get_secret_value(), input: question} response await Requests().get( https://www.wolframalpha.com/api/v1/llm-api, paramsparams ) if not response.ok: raise ValueError(fAPI request failed: {response.status} {response.text()}) answer response.text() if response.text() else return answer实现细节值得展开说明端点为 Wolfram Alpha 的 LLM APIhttps://www.wolframalpha.com/api/v1/llm-api。该接口专门面向 LLM/Agent 集成场景返回纯文本短答案而非完整 API 的结构化 XML/JSON 结果因此天然适合作为文本流中的一个节点。两个查询参数appid开发者账号下申请的 Wolfram Alpha App IDinput用户自然语言问题原文。失败即抛出只要响应非 OKnot response.ok就会抛出ValueError错误信息包含 HTTP 状态码与响应体文本。结合文档的输出表看这一异常最终会被执行引擎映射为块的错误信号/error输出供上游错误处理分支捕获。空结果兜底若 200 响应体为空则返回空字符串保证下游不会拿到None。凭据配置与运行前提使用该块需要满足两个前提申请 Wolfram Alpha App ID在 Wolfram Alpha 开发者生态中为应用创建 App ID对应上文的WOLFRAM_APP_ID。该密钥按官方渠道管理请注意保密——AutoGPT 平台通过 APIKeyCredentials 与密钥安全模块统一托管不会以明文出现在工作流定义里。在平台内配置凭据运行工作流前在 Ask Wolfram 块的凭据字段中选择/新建一个 Wolfram 凭据输入 App ID。凭据会加密存储并按需注入运行时才被解密为请求参数。提示凭据存储与校验相关的基础设施位于 autogpt_platform/autogpt_libs/autogpt_libs/api_key/keysmith.py采用带盐哈希等手段保护密钥说明平台对第三方凭据做了统一的安全管控。实战接入把 Ask Wolfram 编入 Agent 工作流在 AutoGPT 可视化编辑器中接入方式一般是从块面板拖入Ask Wolfram在question输入端口接入上游数据可以接用户输入块如 Agent Short Text Input让最终用户在对话中自由提问也可以接LLM 文本输出或字典取值块把上一层模型生成的查询字符串交给 Wolfram 求值配置 Wolfram 凭据App ID把answer输出接到下游例如接Agent Output / LLM让大模型基于 Wolfram 的确定性答案组织回复形成「LLM 组织语言 Wolfram 保证计算准确性」的组合接条件判断逻辑块error输出可用于触发重试或兜底分支例如当 Wolfram 服务不可用时改走纯 LLM 回答。组合示例逻辑用户提问(question) └─ Ask Wolfram ──answer── LLM 组织回复 ── 输出给用户 └─error── 兜底/重试分支这种「确定性计算引擎 生成式语言模型」的搭配可显著缓解 LLM 在算术、单位换算与事实数值上的幻觉问题。使用边界与注意事项答案形态是纯文本answer为适合展示或继续处理的字符串如llm_api_call直接返回响应文本。如需结构化数据分步解答、图表、多结果应改用 Wolfram Alpha 完整 API而不是本块所使用的v1/llm-api端点。空结果不等于失败Wolfram 无法作答时可能返回空文本块不会报错需要业务层自行判断空串并处理。失败路径走异常网络错误或非 200 状态会抛ValueError错误信息形如API request failed: status body在图上表现为错误信号可按需接错误处理。凭据与配额App ID 与计费/配额绑定高频调用前建议核对官方限制平台侧已把该块单次运行成本设定为 1 个基础 RUN 成本单位。延伸阅读集成完整文档Wolfram LLM API块源码llm_api.py / _api.py文档目录索引docs/integrations/SUMMARY.md 与 docs/integrations/README.mdSearch and Information Retrieval 分组平台块开发范式更多输入/输出与逻辑类块见 docs/integrations/block-integrations/basic.md如需自定义块可参考 Block SDK 指南【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表