利用deepseek大模型,使用Langchain框架,以固定的格式输出周报
import os from langchain_openai import ChatOpenAI from langchain_core.messages import SystemMessage, HumanMessage, AIMessage from dotenv import load_dotenv load_dotenv() llm = ChatOpenAI( model="deepseek-chat", base_url="https://api.deepseek.com/v1", api_key=os.getenv("deepseek_api_key") ) # 初始化对话历史,包含系统提示和few-shot示例 messages = [ SystemMessage( content="你是一名专业的职场助理,专门帮忙写STAR格式的周报。用户会提供工作内容,你需要按照STAR格式整理成周报。"), # few-shot 示例作为参考 SystemMessage(content="""以下是周报示例: 【S】项目组新启动了A系统; 【T】我负责搭建基础脚手架; 【A】完成了TDD链路和数据库迁移; 【R】交付了一个可复用的基础版本。"""), HumanMessage(content="本周完成了项目脚手架的搭建,并做了数据库迁移初始化"), AIMessage( content="【S】项目组启动了新系统开发;\n【T】我负责搭建项目基础架构;\n【A】完成了项目脚手架搭建和数据库迁移初始化工作;\n【R】为团队提供了完整的开发基础环境,后续开发可以直接基于此架构进行。") ] print("=== 周报助理 (LangChain版) ===") print("我是你的专业周报助理,请直接告诉我你本周的工作内容,我会帮你整理成STAR格式的周报。") print("输入 'quit' 退出程序") print() while True: user_input = input("请输入你的工作内容: ") if user_input.lower() == 'quit': print("再见!") break if user_input.strip() == "": print("请输入有效的工作内容") continue # 添加用户输入到对话历史 messages.append(HumanMessage(content=user_input)) try: response = llm.invoke(messages) print(f"\n=== 周报 ===") print(response.content) print() # 添加AI回复到对话历史 messages.append(response) except Exception as e: print(f"发生错误: {e}") # 如果出错,移除刚添加的用户消息 messages.pop()Langchain文档:Multi-agent - Docs by LangChain
Enjoy!