Как запустить начальные примеры LangChains и получить выходные данные?

Я собираюсь изучить LangChain и наткнулся на их раздел «Начало работы». Потому что это не работает, и мне любопытно, единственный ли я человек, у которого примеры LangChain не работают.

Я говорю об их учебнике. https://python.langchain.com/docs/get_started/quickstart/

Давайте воспользуемся самым первым примером:

llm = ChatOpenAI(openai_api_key=api_key)
llm.invoke("how can langsmith help with testing?")

Я также написал код инициализации, чтобы ChatOpenAI работал:

import os
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv

load_dotenv()

api_key = os.getenv("OPENAI_API_KEY")

llm = ChatOpenAI(openai_api_key=api_key)
llm.invoke("how can langsmith help with testing?")

Кажется, функция invoke выполнена, поскольку я не вижу сообщения об ошибке. Но я также не вижу дальнейшего выхода. Ничего не произошло.

Они даже написали: «Мы также можем дать ответ с помощью шаблона подсказки». Однако ответа нет.

Кто мне объяснит, что здесь происходит? И не могли бы вы порекомендовать мне учебник получше вместо учебника от LangChain?

llm.invoke возвращает объект ответа. В консоли Python неперехваченные возвращаемые значения будут выведены на консоль. Но в сценарии Python (*.py) неперехваченные возвращаемые значения игнорируются, поэтому вам придется захватить и распечатать их самостоятельно.
Ouroborus 28.04.2024 00:43

На странице упоминается, что предполагается, что примеры выполняются в блокноте Jupyter, где выходные данные могут быть возвращены иначе, чем где-либо еще.

OneCricketeer 28.04.2024 01:30
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
722
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как упоминалось в комментариях, в документации предполагается, что код пишется в блокноте Jupyter. Тип возвращаемого значения метода invokeBaseMessage. Если вы хотите увидеть объект ответа, сначала присвойте ответ функции invoke переменной:

response = llm.invoke("how can langsmith help with testing?")

а затем напечатайте его значение:

print(response)

Если вас интересует только текст ответа, используйте вместо этого следующее:

print(response.content)
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
from langchain_openai import ChatOpenAI

def ask_gpt(prompt, temperature, max_tokens):

    """
    Sends a prompt to the GPT-3.5 Turbo model and returns the AI response.

    Parameters:
    prompt (str): The input prompt to send to the GPT-3.5 Turbo model.
    temperature (float): The temperature parameter controls the randomness of the output. Higher values (e.g., 0.8) make the output more random, while lower values (e.g., 0.2) make it more focused and deterministic.
    max_tokens (int): The maximum number of tokens in the response. This parameter can be used to limit the length of the generated text.

    Returns:
    str: The AI response generated by the GPT-3.5 Turbo model.
    """

    llm = ChatOpenAI(api_key=OPENAI_API_KEY, temperature=temperature, max_tokens=max_tokens, model = "gpt-3.5-turbo")
    AI_Response = llm.invoke(prompt)
    return AI_Response.content

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