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 .

Другие вопросы по тегам