langchain 开发实战
我的开发环境是 windows + python3.8
langchain版本:
# langchain 0.2.17
# langchain-community 0.2.19
# langchain-core 0.2.43
# langchain-openai 0.1.25
# langchain-text-splitters 0.2.4
# langsmith 0.1.147
pydantic报错
升级pydantic到2.7或以上版本
RunableBranch报错, 说什么分支只能有2个
从某个版本开始,定义RunableBranch不再是用cases或branchs参数,而是直接把 (condition,runable)的元组,全部传给RunableBranch。其中最后一个就是default。
handler_chain5 = ({"user_message": lambda x: x["user_message"]} | self.prompt_templates["1"] | self.llm | RunnableLambda(lambda x: x.content))handler_chain6 = ({"user_message": lambda x: x["user_message"]} | self.prompt_templates["1"] | self.llm | RunnableLambda(lambda x: x.content))return RunnableBranch((lambda x: x["intent_data"]["id"] == "1",handler_chain1), (lambda x: x["intent_data"]["id"] == "2",handler_chain2), (lambda x: x["intent_data"]["id"] == "3",handler_chain3), (lambda x: x["intent_data"]["id"] == "4",handler_chain4), (lambda x: x["intent_data"]["id"] == "5",handler_chain5), (lambda x: x["intent_data"]["id"] == "6",handler_chain6), lambda x: "抱歉,我无法识别您的意图,请重新描述。"
chat模型和非chat模型
gpt4o是chat模型
对应langchain里的Azure OpenAI里类叫 AzureChatOpenAI
否则叫 AzureOpenAI
启用langsmith
通过在代码里增加环境变量:
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGCHAIN_API_KEY"] = "lsv2_*****************2_eb5c8b638f"
os.environ["LANGCHAIN_PROJECT"] = "intent-recognize"