构建LangChain应用程序的示例代码:11、构建一个能够查询Postgres数据库并运行Python代码来分析检索到的数据的代理

构建数据分析师代理:使用LangGraph和Azure Container Apps动态会话

在这个示例中,我们将构建一个能够查询Postgres数据库并运行Python代码来分析检索到的数据的代理。我们将使用LangGraph进行代理协调,并使用Azure Container Apps动态会话来安全地执行Python代码。

注意:构建与SQL数据库交互的大型语言模型(LLM)系统需要执行模型生成的SQL查询。这样做存在固有风险。确保您的数据库连接权限始终尽可能地限制在代理需求的范围内。这将减轻但不能完全消除构建模型驱动系统的风险。有关一般安全最佳实践的更多信息,请参见我们的安全指南。

安装

让我们通过安装Python依赖项并设置我们的OpenAI凭据、Azure Container Apps会话池端点和我们的SQL数据库连接字符串来开始设置。

安装依赖项
%pip install -qU langgraph langchain-azure-dynamic-sessions langchain-openai langchain-community pandas matplotlib
设置凭据

默认情况下,此演示使用:

此LangGraph架构也可以与任何其他调用工具的LLM和任何SQL数据库一起使用。

import getpass
import os

os.environ["AZURE_OPENAI_API_KEY"] = getpass.getpass("Azure OpenAI API key")
os.environ["AZURE_OPENAI_ENDPOINT"] = getpass.getpass("Azure OpenAI endpoint")

AZURE_OPENAI_DEPLOYMENT_NAME = getpass.getpass("Azure OpenAI deployment name")
SESSIONS_POOL_MANAGEMENT_ENDPOINT = getpass.getpass(
    "Azure Container Apps dynamic sessions pool management endpoint"
)
SQL_DB_CONNECTION_STRING = getpass.getpass("PostgreSQL connection string")

导入

import ast
import base64
import io
import json
import operator
from functools import partial
from typing import Annotated, List, Literal, Optional, Sequence, TypedDict

import pandas as pd
from IPython.display import display
from langchain_azure_dynamic_sessions import SessionsPythonREPLTool
from langchain_community.utilities import SQLDatabase
from langchain_core.messages import AIMessage, BaseMessage, HumanMessage, ToolMessage
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.pydantic_v1 import BaseModel, Field
from langchain_core.runnables import RunnablePassthrough
from langchain_core.tools 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hugo_Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值