> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure 容器应用动态会话集成

> 使用 LangChain JavaScript 集成 Azure 容器应用动态会话工具。

> [Azure 容器应用动态会话](https://learn.microsoft.com/azure/container-apps/sessions) 提供了对安全沙盒环境的快速访问，非常适合运行需要与其他工作负载强隔离的代码或应用程序。

您可以在[此页面](https://learn.microsoft.com/azure/container-apps/sessions)上了解更多关于 Azure 容器应用动态会话及其代码解释功能的信息。如果您没有 Azure 帐户，可以[创建一个免费帐户](https://azure.microsoft.com/free/)来开始使用。

## 设置

您首先需要安装 [`@langchain/azure-dynamic-sessions`](https://www.npmjs.com/package/@langchain/azure-dynamic-sessions) 包：

<Tip>
  请参阅[此部分了解安装 LangChain 包的一般说明](/oss/javascript/langchain/install)。
</Tip>

```bash npm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
npm install @langchain/azure-dynamic-sessions @langchain/core
```

您还需要有一个正在运行的代码解释器会话池实例。您可以使用 [Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli) 按照[此指南](https://learn.microsoft.com/azure/container-apps/sessions-code-interpreter)部署一个版本。

一旦您的实例开始运行，您需要确保已为其正确[设置了 Azure Entra 身份验证](https://learn.microsoft.com/azure/container-apps/sessions?tabs=azure-cli#authentication)。

为您的身份添加角色后，您需要检索**会话池管理端点**。您可以在 Azure 门户中，在实例的“概述”部分下找到它。然后您需要设置以下环境变量：

```bash .env example theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
AZURE_CONTAINER_APP_SESSION_POOL_MANAGEMENT_ENDPOINT=<your_endpoint>
```

## 使用示例

下面是一个简单的示例，它创建一个新的 Python 代码解释器会话，调用该工具并打印结果。

```typescript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
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,
// }
```

这是一个完整的示例，我们使用 Azure OpenAI 聊天模型来调用 Python 代码解释器会话工具以执行代码并获取结果：

```typescript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import type { ChatPromptTemplate } from "@langchain/core/prompts";
import { pull } from "@langchain/classic/hub";
import { AgentExecutor, createToolCallingAgent } from "@langchain/classic/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 || "",
  }),
];

// 注意：您需要一个支持函数调用的模型部署，
// 例如版本为 `1106` 的 `gpt-35-turbo`。
const llm = new AzureChatOpenAI({
  temperature: 0,
});

// 获取要使用的提示词 - 您可以修改它！
// 如果您想查看完整的提示词，可以在以下位置查看：
// 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:
    "创建一个打印 Python 版本的 Python 程序并返回结果。",
});

console.log(result);
```

## 相关内容

* 工具[概念指南](/oss/javascript/langchain/tools)
* 工具[操作指南](/oss/javascript/langchain/tools)

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档](/use-these-docs)通过 MCP 连接到 Claude、VSCode 等，以获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/oss/javascript/integrations/tools/azure_dynamic_sessions.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
