Кто-нибудь использовал langchain с openai недавно? У меня возникает много ошибок несовместимости версий при попытке установить и запустить?

Вопрос или проблема

Я пытаюсь запустить следующий код, который я увидел в учебном пособии. Я пытаюсь запустить 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.

Шаги для разрешения проблемы совместимости

  1. Проверка совместимых версий библиотек:
    Важно установить версии библиотек, которые хорошо работают друг с другом. На момент написания этого ответа, рекомендуется использовать следующие версии:

    • langchain: 0.0.250
    • langchain_openai: 0.0.100
    • pydantic: 1.10.9
    • (langsmith может быть не обязательным, но если используется, попробуйте версии 0.0.32)

    Чтобы установить их, вы можете использовать следующие команды в терминале вашей виртуальной среды:

    pip install langchain==0.0.250 langchain_openai==0.0.100 pydantic==1.10.9
  2. Создание виртуальной среды:
    Убедитесь, что вы работаете в чистой виртуальной среде, чтобы избежать конфликтов с другими установленными библиотеками. Вы можете создать и активировать виртуальную среду с помощью следующих команд:

    python -m venv myenv
    myenv\Scripts\activate  # Команда для Windows
  3. Проверка установленных библиотек:
    После установки библиотек вы можете проверить установленные версии, чтобы убедиться, что все установлено корректно, выполнив следующую команду:

    pip freeze
  4. Проверка кода:
    Убедитесь, что ваш код не содержит других ошибок. Неправильный синтаксис или опечатки могут также приводить к ошибкам выполнения. Исправьте строку с имплементацией ChatOpenAI, если это необходимо, и используйте правильную модель. Например:

    llm = ChatOpenAI(
       model="gpt-4",
       temperature=0.9,
       max_tokens=60,
       n=1,
       verbose=False,
    )
  5. Поиск альтернативных подходов:
    Если вышеизложенные шаги не помогают, вы можете рассмотреть возможность использования других библиотек для работы с API OpenAI, таких как openai напрямую, без использования LangChain. Или же вы можете ознакомиться с документацией LangChain для поиска возможных путей обхода проблемы. Это может включать использование других методов генерации заголовков.

  6. Обновление зависимости:
    Если у вас все еще возникают проблемы, попробуйте обновить зависимости через pip до последних стабильных версий и повторите попытку.

    pip install --upgrade langchain langchain_openai pydantic

Заключение

Следуя приведённым указаниям, вы должны быть в состоянии устранить проблемы совместимости и избежать ошибок при работе с библиотеками LangChain и OpenAI. Если же проблема сохраняется, рекомендуется просмотреть последние обновления документации соответствующих библиотек или обратиться к сообществу разработчиков.

Оцените материал
Добавить комментарий

Капча загружается...