from langchain.llms import OpenAI
import environ
env = environ.Env()
environ.Env.read_env()
API_KEY = env('OPENAI_API_KEY')
llm = OpenAI(model_name="text-davinci-003", openai_api_key=API_KEY)
question = "Which language is used to create chatgpt?"print(question, llm(question))
运行脚本。
python langchain_demo.py
你将得到以下输出。
Which language is used to create chatgpt ?
ChatGPT is written in Python, using the PyTorch deep learning framework
import psycopg2
import environ
env = environ.Env()
environ.Env.read_env()
conn = psycopg2.connect(
host='localhost',
port=5432,
user='postgres',
password=env('DBPASS'),
database=env('DATABASE')
)
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS tasks(
id SERIAL PRIMARY KEY,
task TEXT NOT NULL,
completed BOOLEAN,
due_date DATE,
completion_date DATE,
priority INTEGER
)''')
# 插入数据的代码...
conn.commit()
conn.close()
运行脚本
要创建任务表并插入值,请使用以下命令运行 db.py 脚本。
python db.py
设置 SQL 数据库链
创建一个新的 python 文件 app.py,并添加以下代码。
from langchain import OpenAI, SQLDatabase, SQLDatabaseChain
import environ
env = environ.Env()
environ.Env.read_env()
API_KEY = env('OPENAI_API_KEY')
db = SQLDatabase.from_uri(
f"postgresql+psycopg2://postgres:{env('DBPASS')}@localhost:5432/{env('DATABASE')}"
)
llm = OpenAI(temperature=0, openai_api_key=API_KEY)
QUERY = """
Given an input question, first create a syntactically correct postgresql query to run, then look at the results of the query and return the answer.
Use the following format:
Question: Question here
SQLQuery: SQL Query to run
SQLResult: Result of the SQLQuery
Answer: Final answer here
{question}
"""
db_chain = SQLDatabaseChain(llm=llm, database=db, verbose=True)
defget_prompt():
print("Type 'exit' to quit")
whileTrue:
prompt = input("Enter a prompt: ")
if prompt.lower() == 'exit':
print('Exiting...')
breakelse:
try:
question = QUERY.format(question=prompt)
print(db_chain.run(question))
except Exception as e:
print(f"Error occurred: {e}")
get_prompt()