SuperAPI AI 工具集

dspy-rlm-module

通用与其它

查看项目

更新于 10-16 01:13

技能介绍

用途:dspy.RLM 面向上下文过大、无法塞进单次提示的场景,例如整个代码库、超长日志或海量数据。它把 LLM 放进沙箱化的 Python REPL(Deno 启动的 Pyodide/WASM),将完整上下文作为变量暴露,模型通过写代码切片、grep、摘要并递归子查询,迭代直到能作答。

主要能力:可配置 max_iterations(REPL 循环上限,默认 20)、max_llm_calls(子 LM 调用上限,默认 50)、max_output_chars(每步截断 REPL 输出,默认 10_000)、verbose、tools 与 sub_lm,也可传入自定义 interpreter。支持把 RLM 作为模块嵌入更大的 dspy.Module,并用 GEPA 优化外层程序。

使用方式:需先安装 Deno(brew install deno 或见 https://deno.land),并准备一个更便宜的子 LM。典型用法:dspy.configure(lm=dspy.LM("openai/gpt-4o")),sub_lm = dspy.LM("openai/gpt-4o-mini"),rlm = dspy.RLM("context, query -> answer", max_iterations=20, max_llm_calls=50, max_output_chars=10_000, sub_lm=sub_lm, tools=[], verbose=False),再以 rlm(context=..., query=...) 调用并读取 result.answer。数据应作为 kwargs 传入而非拼进指令。自定义工具是普通 Python 可调用对象,经 tools=[...] 暴露在沙箱内,DSPy 3.2.x 中按关键字调用,需带命名且带类型的参数。

适用场景:超大上下文、递归分块或数据探索循环;需要 grep/读文件的整库推理;需要外部工具时用 dspy.ReAct,需运行数学/代码时用 dspy.ProgramOfThought,上下文小于 100k 且一次调用可答时用 dspy.Predict / dspy.ChainOfThought。

限制与安全:默认解释器无文件系统、网络或子进程访问;若自定义工具做 I/O,其安全由使用者负责,切勿把 subprocess.run 直接交给 RLM。缺少 Deno 是最常见错误。生产环境应收紧 max_llm_calls 以防成本失控,调试时开 verbose=True,不要在上下文字符串中放密钥。其他细节暂未提供。