Azure 容器应用动态会话
Azure 容器应用动态会话 提供对安全沙盒环境的快速访问,这些环境非常适合运行需要与其他工作负载严格隔离的代码或应用程序。
您可以在 此页面 上了解有关 Azure 容器应用动态会话及其代码解释功能的更多信息。如果您没有 Azure 帐户,可以 创建一个免费帐户 开始使用。
设置
首先,您需要安装 @langchain/azure-dynamic-sessions
包
提示
请参阅 此部分以获取有关安装集成包的一般说明。
- npm
- Yarn
- pnpm
npm install @langchain/azure-dynamic-sessions @langchain/core
yarn add @langchain/azure-dynamic-sessions @langchain/core
pnpm add @langchain/azure-dynamic-sessions @langchain/core
您还需要运行代码解释器会话池实例。您可以按照 Azure CLI 的说明,使用 此指南 部署一个版本。
实例运行后,您需要确保已为其正确设置了 Azure Entra 身份验证。您可以在 此处 找到有关如何执行此操作的说明。
为您的身份添加角色后,您需要检索 **会话池管理端点**。您可以在 Azure 门户的实例“概述”部分中找到它。然后,您需要设置以下环境变量
AZURE_CONTAINER_APP_SESSION_POOL_MANAGEMENT_ENDPOINT=<your_endpoint>
API 参考
使用示例
以下是一个简单的示例,它创建了一个新的 Python 代码解释器会话,调用该工具并打印结果。
import { SessionsPythonREPLTool } from "@langchain/azure-dynamic-sessions";
const tool = new SessionsPythonREPLTool({
poolManagementEndpoint:
process.env.AZURE_CONTAINER_APP_SESSION_POOL_MANAGEMENT_ENDPOINT || "",
});
const result = await tool.invoke("print('Hello, World!')\n1+2");
console.log(result);
// {
// stdout: "Hello, World!\n",
// stderr: "",
// result: 3,
// }
API 参考
- SessionsPythonREPLTool 来自
@langchain/azure-dynamic-sessions
这是一个完整的示例,其中我们使用 Azure OpenAI 聊天模型来调用 Python 代码解释器会话工具以执行代码并获取结果
import type { ChatPromptTemplate } from "@langchain/core/prompts";
import { pull } from "langchain/hub";
import { AgentExecutor, createToolCallingAgent } from "langchain/agents";
import { SessionsPythonREPLTool } from "@langchain/azure-dynamic-sessions";
import { AzureChatOpenAI } from "@langchain/openai";
const tools = [
new SessionsPythonREPLTool({
poolManagementEndpoint:
process.env.AZURE_CONTAINER_APP_SESSION_POOL_MANAGEMENT_ENDPOINT || "",
}),
];
// Note: you need a model deployment that supports function calling,
// like `gpt-35-turbo` version `1106`.
const llm = new AzureChatOpenAI({
temperature: 0,
});
// Get the prompt to use - you can modify this!
// If you want to see the prompt in full, you can at:
// https://smith.langchain.com/hub/jacob/tool-calling-agent
const prompt = await pull<ChatPromptTemplate>("jacob/tool-calling-agent");
const agent = await createToolCallingAgent({
llm,
tools,
prompt,
});
const agentExecutor = new AgentExecutor({
agent,
tools,
});
const result = await agentExecutor.invoke({
input:
"Create a Python program that prints the Python version and return the result.",
});
console.log(result);
API 参考
- ChatPromptTemplate 来自
@langchain/core/prompts
- pull 来自
langchain/hub
- AgentExecutor 来自
langchain/agents
- createToolCallingAgent 来自
langchain/agents
- SessionsPythonREPLTool 来自
@langchain/azure-dynamic-sessions
- AzureChatOpenAI 来自
@langchain/openai