第一个坑:关于模型名称
pip升级了
pip install -U qianfan
之后,程序其实是OK的
qianfan_chat_llm =QianfanChatEndpoint(streaming=True,model="ERNIE-Bot-8k")
然后模型名是ERNIE-Bot-8k
和平台上不一样,平台上是大写的8K,好在报错比较友好,改掉了
第二个坑:升级了LangChain后发生的包名报错
这才短短几个月啊
完全broken级别的升级的感觉,也是无奈了
from langchain.chains import ConversationChain
from langchain_community.chat_models import ChatOpenAI
from langchain_community.chat_models import QianfanChatEndpoint
from log_callback_handler import NiceGuiLogElementCallbackHandler
#https://python.langchain.com/docs/integrations/toolkits/sql_database
from langchain_community.agent_toolkits import create_sql_agent
from langchain_community.agent_toolkits import SQLDatabaseToolkit
from langchain.agents.agent_types import AgentType
from langchain.sql_database import SQLDatabase多出来一个langchain_community
第三个坑:百度qianfan那个包自身的
https://github.com/langchain-ai/langchain/pull/18445
简单的说就是,运行的时候会报错:
lemonhall@lemonhallme:~/openai$ python3 sql.py
> Entering new SQL Agent Executor chain...
[INFO] [03-03 17:23:56] openapi_requestor.py:316 [t:140066326185792]: requesting llm api endpoint: /chat/ernie_bot_8k
[INFO] [03-03 17:23:56] oauth.py:207 [t:140066326185792]: trying to refresh access_token for ak `PDj0ZL***`
[INFO] [03-03 17:23:57] oauth.py:220 [t:140066326185792]: sucessfully refresh access_token
Traceback (most recent call last):
File "/home/lemonhall/openai/sql.py", line 46, in <module>
agent_executor.invoke("该数据库你认为大概率是怎样的一个应用?提示:该数据库的主表是notes表")
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain/chains/base.py", line 163, in invoke
raise e
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain/chains/base.py", line 153, in invoke
self._call(inputs, run_manager=run_manager)
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain/agents/agent.py", line 1391, in _call
next_step_output = self._take_next_step(
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain/agents/agent.py", line 1097, in _take_next_step
[
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain/agents/agent.py", line 1097, in <listcomp>
[
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain/agents/agent.py", line 1125, in _iter_next_step
output = self.agent.plan(
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain/agents/agent.py", line 387, in plan
for chunk in self.runnable.stream(inputs, config={"callbacks": callbacks}):
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/runnables/base.py", line 2446, in stream
yield from self.transform(iter([input]), config, **kwargs)
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/runnables/base.py", line 2433, in transform
yield from self._transform_stream_with_config(
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/runnables/base.py", line 1513, in _transform_stream_with_config
chunk: Output = context.run(next, iterator) # type: ignore
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/runnables/base.py", line 2397, in _transform
for output in final_pipeline:
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/runnables/base.py", line 1051, in transform
for chunk in input:
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/runnables/base.py", line 4173, in transform
yield from self.bound.transform(
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/runnables/base.py", line 1061, in transform
yield from self.stream(final, config, **kwargs)
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/language_models/chat_models.py", line 250, in stream
raise e
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/language_models/chat_models.py", line 241, in stream
generation += chunk
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/outputs/chat_generation.py", line 57, in __add__
generation_info = merge_dicts(
File "/home/lemonhall/.local/lib/python3.9/site-packages/langchain_core/utils/_merge.py", line 38, in merge_dicts
raise TypeError(
TypeError: Additional kwargs key created already exists in left dict and value has unsupported type <class 'int'>.TypeError: Additional kwargs key created already exists in left dict and value has unsupported type <class 'int'>.
核心错误就是这一句话
解决方案:
https://github.com/langchain-ai/langchain/pull/18445
以后估计就不是什么问题了,这个是qianfan这个包的一些问题,导致需要去修改langchain_core核心包的里的内容

修改的内容就这个
我是手动去修改了_merge.py这个文件,就不报错了
第四个坑:文件解析器错误

langchain_core.exceptions.OutputParserException: Parsing LLM output produced both a final answer and a parse-able action::
然而这个错误上次我修改过了,但当时没有记录
这就很郁闷了
langchain/agents/output_parsers/react_single_input.py", line 59
在这个文件的59行,明天再改吧

如果我没有记错,其实主要就是修改那个正则,这个需要找一个线上的正则表达式测试器,一点一点的测试