LLM-聊天机器人
import os from langchain_community.chat_message_histories import ChatMessageHistory from langchain_core.messages import HumanMessage from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.runnables import RunnableWithMessageHistory from langchain_openai import ChatOpenAI from langserve import add_routes # pip install langchain_community # 科学上网 os.environ['http_proxy'] = '127.0.0.1:7890' os.environ['https_proxy'] = '127.0.0.1:7890' # 使用 langsmith os.environ["LANGCHAIN_TRACING_V2"] = "true" # 不写项目名称,会用默认的项目,如果指定了,用指定的 langsmith项目名 os.environ["LANGCHAIN_PROJECT"] = "langchainDemo" os.environ["LANGCHAIN_API_KEY"] = "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" # 调用LLM 做一个聊天机器人 # 1.创建模型 model = ChatOpenAI(model='gpt-4-turbo') prompt_template = ChatPromptTemplate.from_template([ ('system','你是一个乐于助人的助手。用{language}进你所能回答所有问题。'), MessagesPlaceholder(variable_name='my_msg') # 记录聊天历史记录 ]) # 4.得到链 chain = prompt_template | model # 保存聊天记录 store = {} # 保存所有用户的聊天记录,每个用户用sessionId作为key,value是一个聊天历史记录对象 # 指定一个sessionId,返回一个聊天记录历史对象 def get_session_history(session_id : str): if session_id not in store : store[session_id] = ChatMessageHistory() return store[session_id] do_messsage = RunnableWithMessageHistory( chain, get_session_history, input_messages_key="my_msg" # 每次发送消息的一个key ) config = {'configurable':{'session_id':'zhangsan123'}} # 第一轮聊天 resp = do_messsage( { 'my_msg' : [HumanMessage(content='你好啊,我是月月。')], 'language' : '中文' }, config = config ) print(resp.content) # 第二轮聊天 resp = do_messsage( { 'my_msg' : [HumanMessage(content='我的名字是什么?')], 'language' : '中文' }, config = config ) print(resp.content) # 第三轮聊天 流式输出 for resp in do_messsage.stream( { 'my_msg' : [HumanMessage(content='给我讲一个笑话吧')], 'language' : '中文' }, config = config ): # 每次循环(响应)是一个token print(resp.content,end = '_') print(resp.content)
« LLM-prompt
|
常见管理风格及特点»
日历
个人资料

diaba 寻求合作请留言或联系mail: services@jiucaiyuan.net
链接
最新文章
存档
- 2025年4月(17)
- 2025年3月(25)
- 2025年2月(20)
- 2025年1月(2)
- 2024年10月(1)
- 2024年8月(2)
- 2024年6月(4)
- 2024年5月(1)
- 2023年7月(1)
- 2022年10月(1)
- 2022年8月(1)
- 2022年6月(11)
- 2022年5月(6)
- 2022年4月(33)
- 2022年3月(26)
- 2021年3月(1)
- 2020年9月(2)
- 2018年8月(1)
- 2018年3月(1)
- 2017年3月(3)
- 2017年2月(6)
- 2016年12月(3)
- 2016年11月(2)
- 2016年10月(1)
- 2016年9月(3)
- 2016年8月(4)
- 2016年7月(3)
- 2016年6月(4)
- 2016年5月(7)
- 2016年4月(9)
- 2016年3月(4)
- 2016年2月(5)
- 2016年1月(17)
- 2015年12月(15)
- 2015年11月(11)
- 2015年10月(6)
- 2015年9月(11)
- 2015年8月(8)
分类
热门文章
- SpringMVC:Null ModelAndView returned to DispatcherServlet with name 'applicationContext': assuming HandlerAdapter completed request handling
- Mac-删除卸载GlobalProtect
- java.lang.SecurityException: JCE cannot authenticate the provider BC
- MyBatis-Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}
- Idea之支持lombok编译
标签
最新评论
- logisqykyk
Javassist分析、编辑和创建jav... - xxedgtb
Redis—常见参数配置 - 韭菜园 ... - wdgpjxydo
SpringMVC:Null Model... - rllzzwocp
Mysql存储引擎MyISAM和Inno... - dpkgmbfjh
SpringMVC:Null Model... - tzklbzpj
SpringMVC:Null Model... - bqwrhszmo
MyBatis-Improper inl... - 乐谱吧
good非常好 - diaba
@diaba:应该说是“时间的度量依据”... - diaba
如果速度增加接近光速、等于光速、甚至大于...
最新微语
- 在每件事情上花费的东西,就是生命的一部分,而我们花费的这些东西要求立即得到回报,或者在一个长时间以后得到回报。
2025-01-23 15:46
- 诺曼·文森特说:“并不是你认为自己是什么样的人,你就是什么样的人。但是你的思想是什么样,你就是什么样的人。”
2025-01-23 15:44
- 从今天起,做一个幸福的人。喂马,砍柴,(思想)周游世界
2022-03-21 23:31
- 2022.03.02 23:37:59
2022-03-02 23:38
- 几近崩溃后,找到解决方法,总是那么豁然开朗!所以遇到问题要坚持!
2018-07-18 10:49
发表评论: