Python 解释器工具
危险
此工具执行代码,并且可能执行破坏性操作。请注意,您信任传递给它的任何代码!
LangChain 提供了一个实验性工具,用于执行任意的 Python 代码。这在结合可以生成代码以执行更强大计算的 LLM 时非常有用。
用法
提示
请参阅 此部分,了解有关安装集成包的一般说明.
- npm
- Yarn
- pnpm
npm install @langchain/openai @langchain/core
yarn add @langchain/openai @langchain/core
pnpm add @langchain/openai @langchain/core
import { OpenAI } from "@langchain/openai";
import { PythonInterpreterTool } from "@langchain/community/experimental/tools/pyinterpreter";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";
const prompt = ChatPromptTemplate.fromTemplate(
`Generate python code that does {input}. Do not generate anything else.`
);
const model = new OpenAI({});
const interpreter = await PythonInterpreterTool.initialize({
indexURL: "../node_modules/pyodide",
});
// Note: In Deno, it may be easier to initialize the interpreter yourself:
// import pyodideModule from "npm:pyodide/pyodide.js";
// import { PythonInterpreterTool } from "npm:@langchain/community/experimental/tools/pyinterpreter";
// const pyodide = await pyodideModule.loadPyodide();
// const pythonTool = new PythonInterpreterTool({instance: pyodide})
const chain = prompt
.pipe(model)
.pipe(new StringOutputParser())
.pipe(interpreter);
const result = await chain.invoke({
input: `prints "Hello LangChain"`,
});
console.log(JSON.parse(result).stdout);
// To install python packages:
// This uses the loadPackages command.
// This works for packages built with pyodide.
await interpreter.addPackage("numpy");
// But for other packages, you will want to use micropip.
// See: https://pyodide.org/en/stable/usage/loading-packages.html
// for more information
await interpreter.addPackage("micropip");
// The following is roughly equivalent to:
// pyodide.runPython(`import ${pkgname}; ${pkgname}`);
const micropip = interpreter.pyodideInstance.pyimport("micropip");
await micropip.install("numpy");
API 参考
- OpenAI 来自
@langchain/openai
- PythonInterpreterTool 来自
@langchain/community/experimental/tools/pyinterpreter
- ChatPromptTemplate 来自
@langchain/core/prompts
- StringOutputParser 来自
@langchain/core/output_parsers