refactor(ch5): align filenames and update corresponding README sections
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
from config import OPENAI_API_KEY
|
||||
import sqlite3
|
||||
from langchain_openai import ChatOpenAI
|
||||
from langchain_community.agent_toolkits import create_sql_agent
|
||||
from langchain_community.utilities import SQLDatabase # 导入 SQLDatabase
|
||||
import os
|
||||
|
||||
# 配置llm
|
||||
llm = ChatOpenAI(
|
||||
model="deepseek-chat",
|
||||
api_key=OPENAI_API_KEY,
|
||||
base_url="https://api.deepseek.com"
|
||||
)
|
||||
|
||||
# 创建一个临时的数据库--用于演示
|
||||
db_file = "test_sql.db"
|
||||
if os.path.exists(db_file):
|
||||
os.remove(db_file)
|
||||
conn = sqlite3.connect(db_file)
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("CREATE TABLE users (id INT,name TEXT,age INT);")
|
||||
cursor.execute("INSERT INTO users (id,name,age) VALUES (1,'Alice',30);")
|
||||
cursor.execute("INSERT INTO users (id,name,age) VALUES (2,'Bob',25);")
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
# 连接数据库 -- LangChain 使用 SQLAlchemy URI (连接方式)
|
||||
db_uri = f'sqlite:///{db_file}'
|
||||
db = SQLDatabase.from_uri(db_uri)
|
||||
|
||||
# 创建sqlAgent -- 一键完成,无需定义tools,仅告诉它使用openai-tools,即Tool Calling(工具调用)模式
|
||||
agent_executor = create_sql_agent(
|
||||
llm=llm,
|
||||
db=db,
|
||||
agent_type="openai-tools",
|
||||
verbose=True
|
||||
)
|
||||
|
||||
# 运行
|
||||
response = agent_executor.invoke({"input":"告诉我Alice多大了?"})
|
||||
print(response['output'])
|
||||
|
||||
# 清理
|
||||
db._engine.dispose() # 关闭连接池,避免文件被占用
|
||||
if os.path.exists(db_file):
|
||||
os.remove(db_file)
|
||||
Reference in New Issue
Block a user