Я собираюсь изучить 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?
На странице упоминается, что предполагается, что примеры выполняются в блокноте Jupyter, где выходные данные могут быть возвращены иначе, чем где-либо еще.
Как упоминалось в комментариях, в документации предполагается, что код пишется в блокноте Jupyter. Тип возвращаемого значения метода invoke
— BaseMessage
. Если вы хотите увидеть объект ответа, сначала присвойте ответ функции 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
llm.invoke
возвращает объект ответа. В консоли Python неперехваченные возвращаемые значения будут выведены на консоль. Но в сценарии Python (*.py) неперехваченные возвращаемые значения игнорируются, поэтому вам придется захватить и распечатать их самостоятельно.