LangChain--12--PostgreSQL
·
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
PostgreSQL
官网:https://www.postgresql.org/
gitcode: gitcode下载地址
1.PostgreSQL 简介






2.下载安装
下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

3.语法


















4.SpringBoot整合PostgreSQL
1.创建SpringBoot项目导入依赖
<!--mybtis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<!--postgresql-->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
主配置文件中配置连接数据库参数
spring:
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/testdb
username: postgres
password: root
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
map-underscore-to-camel-case: true # 驼峰
2.java代码
创建实体类
@Data
public class Book {
private Integer id;
private String bookName;
private BigDecimal price;
}
创建mapper接口
@Mapper
public interface BookMapper {
Book findById(Integer id);
}
创建mapper xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.woniuxy.postgresql.mapper.BookMapper">
<select id="findById" resultType="com.woniuxy.postgresql.entity.Book">
select * from public.books where id = #{id}
</select>
</mapper>
测试类
@SpringBootTest
class PostgreSqlApplicationTests {
@Resource
private BookMapper bookMapper;
@Test
void contextLoads() {
System.out.println(bookMapper.findById(1));
}
}

结合大模型Checkpoint存储实现


1. PostgreSQL搭建与操作


docker run -d \
--name postgres16 \
-p 5432:5432 \
-e POSTGRES_PASSWORD=postgres123 \
-e POSTGRES_DB=langgraph_db \
-v postgres_data:/var/lib/postgresql/data \
--shm-size=256mb \
--restart=unless-stopped \
postgres:16





2.安装对应依赖
PostgresSaver 适合生产环境的多实例部署场景,使用PostgreSaver之前需要在对应的python环境中安装如下依赖:
pip install langgraph-checkpoint-postgres==3.1.1
pip install psycopg-binary==3.3.4
3.案例:使用PostgreSaver存储Checkpoint。
"""
PostgresSaver:使用 PostgreSQL 持久化 checkpoint
"""
from langchain.chat_models import init_chat_model
from dotenv import load_dotenv
import os
# 从.env文件中加载环境变量
load_dotenv(override=True)
model = init_chat_model(
model="gpt-5.4-mini",
model_provider="openai",
api_key=os.getenv("CLOSEAI_API_KEY"),
base_url=os.getenv("CLOSEAI_BASE_URL")
)
# 替换为你的实际数据库连接串
from langchain.agents import create_agent
from langchain.messages import HumanMessage
from langgraph.checkpoint.postgres import PostgresSaver
DB_URL = "postgresql://langchain_user:abcd1234@118.195.128.47:5432/langchain_db?sslmode=disable"
with PostgresSaver.from_conn_string(DB_URL) as checkpointer:
# 初始化PostgreSQL数据库
checkpointer.setup()
agent = create_agent(
model=model,
checkpointer=checkpointer
)
config = {"configurable": {"thread_id": "1"}}
response1 = agent.invoke(
{"messages": [HumanMessage("你好,我是老王")]},
config=config
)
print("=" * 30, "-> 第一次调用 <-", "=" * 30)
for msg in response1["messages"]:
msg.pretty_print()
response2 = agent.invoke(
{"messages": [HumanMessage("你好,我是谁?")]},
config=config
)
print("=" * 30, "-> 第二次调用 <-", "=" * 30)
for msg in response2["messages"]:
msg.pretty_print()


4.表数据分析



更多推荐




所有评论(0)