ValueError: получен неизвестный тип S при использовании GPT-4 с LangChain для суммирования.
Я пытаюсь использовать LangChain с моделью GPT-4 для задачи обобщения. Когда я использую модель GPT-3.5-турбо вместо GPT-4, все работает нормально. Однако как только я переключусь на GPT-4, я получаю следующую ошибку:
ValueError: Got unknown type S
Вот соответствующая часть моего кода, которая вызывает ошибку:
llm = ChatOpenAI(temperature=0, model_name="gpt-4")
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=4000, chunk_overlap=0, separators=[" ", ",", "\n"]
)
texts = text_splitter.split_text(readme_content)
docs = [Document(page_content=t) for t in texts]
prompt_template = """template"""
PROMPT = PromptTemplate(template=prompt_template, input_variables=["text"])
chain = load_summarize_chain(llm, chain_type="map_reduce", map_prompt=PROMPT, combine_prompt=PROMPT)
summary = chain.run(docs)
В этом коде документы — это фрагменты, созданные с помощью класса RecursiveCharacterTextSplitter.
Полная трассировка ошибки выглядит следующим образом:
Traceback (most recent call last):
File "/Users/maxhager/Projects2023/githubgpt/testing_env/test_single.py", line 136, in <module>
print(create_tweet(info, readme_content))
File "/Users/maxhager/Projects2023/githubgpt/testing_env/test_single.py", line 120, in create_tweet
summary = llm(prompt)
File "/Users/maxhager/.virtualenvs/githubgpt/lib/python3.10/site-packages/langchain/chat_models/base.py", line 128, in __call__
return self._generate(messages, stop=stop).generations[0].message
File "/Users/maxhager/.virtualenvs/githubgpt/lib/python3.10/site-packages/langchain/chat_models/openai.py", line 247, in _generate
message_dicts, params = self._create_message_dicts(messages, stop)
File "/Users/maxhager/.virtualenvs/githubgpt/lib/python3.10/site-packages/langchain/chat_models/openai.py", line 277, in _create_message_dicts
message_dicts = [_convert_message_to_dict(m) for m in messages]
File "/Users/maxhager/.virtualenvs/githubgpt/lib/python3.10/site-packages/langchain/chat_models/openai.py", line 277, in <listcomp>
message_dicts = [_convert_message_to_dict(m) for m in messages]
File "/Users/maxhager/.virtualenvs/githubgpt/lib/python3.10/site-packages/langchain/chat_models/openai.py", line 88, in _convert_message_to_dict
raise ValueError(f"Got unknown type {message}")
ValueError: Got unknown type S
Кто-нибудь сталкивался с подобной проблемой при использовании GPT-4 с LangChain? Будем очень признательны за любые предложения по устранению этой ошибки.
1 ответ
У меня была аналогичная ошибка, и ее исправили, заменив PromptTemplate на ChatPromptTemplate, поскольку это модель ChatOpenAI.
Я подозреваю, что вы также перешли сllm = OpenAI
кllm = ChatOpenAI
модель одновременно с переходом с GPT3.5 на GPT4.
Попробуйте что-то вроде:
from langchain.prompts import (
ChatPromptTemplate,
HumanMessagePromptTemplate
)
human_message_prompt = HumanMessagePromptTemplate.from_template(prompt_template)
chat_prompt = ChatPromptTemplate.from_messages([human_message_prompt])
См. документацию по адресу: https://python.langchain.com/en/latest/modules/prompts/chat_prompt_template.html .