from dotenv import load_dotenv
import os
from langchain_openai import ChatOpenAI
# 加载配置
load_dotenv()
# 1.创建大模型客户端
client = ChatOpenAI(model=os.getenv("MODEL_NAME"),
base_url=os.getenv("BASE_URL"),
api_key=os.getenv("DEEPSEEK_API_KEY"),
temperature=0)
schema = {"金融": ["日期", "股票名称", "开盘价", "收盘价", "成交量"]}
examples = {'金融': [{"content": "2023-01-10,股市震荡。股票古哥-D[EOOE]美股今日开盘价100美元,一度飙升至105美元,随后回落至98美元,最终以102美元收盘,成交量达到520000。"},
{"answer": {"日期": "2023-01-10", '股票名称': "古哥-D[EOOE]美股", '开盘价': "100美元", '收盘价': "102美元", '成交量': "520000"}}]}
sentences = ['2023-02-15,寓意吉祥的节日,股票佰笃[BD]美股开盘价10美元,虽然经历了波动,但最终以13美元收盘,成交量微幅增加至460,000,投资者情绪较为平稳。',
'2023-04-05,市场迎来轻松氛围,股票盘古(0021)开盘价23元,尽管经历了波动,但最终以26美元收盘,成交量缩小至310,000,投资者保持观望态度。',]
def build_prompt():
init_prompt = f"你是一个文本信息抽取专家。参考格式:{schema},完成对输入的文本进行信息抽取任务。比如:"
for example in examples.items():
init_prompt += str(example)
# print("init_prompt-->", init_prompt)
return init_prompt
def call_llm(prompt):
prompt += '请对如下文本进行信息抽取,只需要输出最终的结果即可,不需要输出其他内容。\n'
for sentence in sentences:
# print("sentence-->", sentence)
result= client.invoke(prompt + sentence)
print(result.content)
if __name__ == '__main__':
prompt = build_prompt()
call_llm(prompt)