Вопрос или проблема
Я пытаюсь запустить следующий код, который я увидел в учебном пособии. Я пытаюсь запустить API OpenAI и сгенерировать несколько заголовков для блога.
from langchain.prompts.chat import ChatPromptTemplate
from langchain_openai import ChatOpenAI
import os
os.environ['OPENAI_API_KEY'] = 'key'
# Инициализация модели чата OpenAI
llm = ChatOpenAI(
model="gpt-4o-2024-08-06",
temperature=0.9,
max_tokens=60,
n=1,
verbose=False,
)
# Определение шаблона подсказки для генерации кликбейтовых заголовков
template = ChatPromptTemplate.from_messages([
("system", "Вы креативный и убедительный автор заголовков для новостного сайта, который стремится занять первое место в Google."),
("human", "Создайте самый запоминающийся, кликбейтовый заголовок для данного заголовка новостной статьи: '{article_title}'."),
])
# Ввод пользователем заголовка статьи
article_title = input("Введите заголовок новости: ")
# Цепочка подсказки и LLM
chain = template | llm
# Генерация и вывод кликбейтового заголовка
clickbait_headline = chain.invoke({"article_title": article_title})
print(clickbait_headline)
и я получаю ошибку
ImportError: cannot import name 'PREPARE_METHODS' from 'pydantic._internal._std_types_schema'
Я пытаюсь запустить код в Windows 11 и в VS Code.
Проблема:
Кажется, существует проблема совместимости между langchain_openai, langchain и pydantic.
Ошибка, похоже, возникает из-за изменений в pydantic, где PREPARE_METHODS, возможно, был устаревшим или перемещен.
Мои вопросы:
Как я могу решить эту конфликт версий?
Существуют ли конкретные версии langchain, langchain_openai, pydantic и langsmith, которые хорошо работают вместе?
Существует ли альтернативный подход, чтобы запустить этот код?
Стоит ли рассматривать другую имплементацию, чтобы избежать этих проблем?
Может кто-то помочь мне найти правильные версии библиотеки для установки? 2024 год, это не должно быть так сложно. Я пытался установить langchain в виртуальной среде, чтобы понизить до старых версий, но ничего не сработало. Я пробовал запустить код, установив старый langchain в виртуальной среде, но все равно получил те же ошибки.
Ответ или решение
Решение проблем совместимости при использовании LangChain и OpenAI
Вопрос о совместимости библиотек, таких как LangChain, LangChain OpenAI и Pydantic, стал актуальной темой среди разработчиков. Ошибка, которая появляется в вашем случае, связана с тем, что метод PREPARE_METHODS
был либо перемещён, либо устарел в последних версиях библиотеки Pydantic.
Шаги для разрешения проблемы совместимости
-
Проверка совместимых версий библиотек:
Важно установить версии библиотек, которые хорошо работают друг с другом. На момент написания этого ответа, рекомендуется использовать следующие версии:langchain
: 0.0.250langchain_openai
: 0.0.100pydantic
: 1.10.9- (
langsmith
может быть не обязательным, но если используется, попробуйте версии 0.0.32)
Чтобы установить их, вы можете использовать следующие команды в терминале вашей виртуальной среды:
pip install langchain==0.0.250 langchain_openai==0.0.100 pydantic==1.10.9
-
Создание виртуальной среды:
Убедитесь, что вы работаете в чистой виртуальной среде, чтобы избежать конфликтов с другими установленными библиотеками. Вы можете создать и активировать виртуальную среду с помощью следующих команд:python -m venv myenv myenv\Scripts\activate # Команда для Windows
-
Проверка установленных библиотек:
После установки библиотек вы можете проверить установленные версии, чтобы убедиться, что все установлено корректно, выполнив следующую команду:pip freeze
-
Проверка кода:
Убедитесь, что ваш код не содержит других ошибок. Неправильный синтаксис или опечатки могут также приводить к ошибкам выполнения. Исправьте строку с имплементациейChatOpenAI
, если это необходимо, и используйте правильную модель. Например:llm = ChatOpenAI( model="gpt-4", temperature=0.9, max_tokens=60, n=1, verbose=False, )
-
Поиск альтернативных подходов:
Если вышеизложенные шаги не помогают, вы можете рассмотреть возможность использования других библиотек для работы с API OpenAI, таких какopenai
напрямую, без использования LangChain. Или же вы можете ознакомиться с документацией LangChain для поиска возможных путей обхода проблемы. Это может включать использование других методов генерации заголовков. -
Обновление зависимости:
Если у вас все еще возникают проблемы, попробуйте обновить зависимости через pip до последних стабильных версий и повторите попытку.pip install --upgrade langchain langchain_openai pydantic
Заключение
Следуя приведённым указаниям, вы должны быть в состоянии устранить проблемы совместимости и избежать ошибок при работе с библиотеками LangChain и OpenAI. Если же проблема сохраняется, рекомендуется просмотреть последние обновления документации соответствующих библиотек или обратиться к сообществу разработчиков.