基础对话
首先先去deepseek上搞一个API key
根据deepseek官网的介绍,一个基础的chat模型应该这样写
# pip3 install langchain_openai
# python3 deepseek_v2_langchain.py
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model='deepseek-chat',
openai_api_key='',
openai_api_base='https://api.deepseek.com',
max_tokens=1024
)
response = llm.invoke("给我一个很土但是听起来很好养活的男孩小名", temperature=1)
print(response.content)
其中需要注意的地方有
- deepseek接口与openai兼容,所以调用deepseek接口可以实现
- 之前的langchain.llms和langchain.chat_models已经换成了langchain_openai
- predict和predict_messages在新版中已经被换成了invoke
- temperature表示唯一性,为0时一般结果不变,越大每次结果越容易变化
- 直接执行llm.invoke会出来完整的消息类型,如AIMessage…,我们可以通过.content或者其他属性来获取我们想要的内容
LangChain提供了几个对象,用于方便地区分不同的角色:
- HumanMessage: 来自人类/用户的ChatMessage。
- AIMessage: 来自AI/助手的ChatMessage。
- SystemMessage: 来自系统的ChatMessage。
- FunctionMessage: 来自函数调用的ChatMessage。
我们可以这样写
response = llm.invoke("Hi!")
print(response.content)
text = "做logo的公司的好名字是什么?"
message = [HumanMessage(content=text)]
response1=llm.invoke(message)
print(response1.content)
提示模板
大多数LLM应用程序不会是用户说啥,就完全传入到LLM中,那样会太麻烦。
在特定任务中,我们应该输入最核心的内容,然后LLM把该内容添加到一个更大的文本片段中,这就是提示模板prompttemplates
比如
from langchain.prompts import PromptTemplate
prompt = PromptTemplate.from_template("做{product}的公司的好名字应该是?")
prompt.