El día de hoy he comenzado con LangChain para estudiar y aprender un poco sobre los LLM. El primer ejemplo ha sido como sigue:
from langchain.llms import LlamaCpp, OpenAI
import config
api = config.OPENAI_API_KEY
llm_openai = OpenAI(api_key=api, model_name='text-davinci-003')
respuesta_openai = llm_openai('Hola como estás?')
print(respuesta_openai)
ChatModels
El siguiente ejemplo ha sido utilizar el paquete ChatModels de langchain y usar HumanMessage para indicar un mensaje “humano” para chatgpt. El ejemplo es como sigue:
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage
import config
api = config.OPENAI_API_KEY
chatgpt = ChatOpenAI(api_key=api)
respuesta = chatgpt([HumanMessage(content="Hola, como estás?")])
print(respuesta.content)
Por último, he utilizado PromptTemplate del paquete de prompts. La idea es utilizar una frase como prompt y utilizar variables o grupos de variables para reemplazar. Así por ejemplo :
template_basico = """Eres un asistente virtual culinario que responde a preguntas
de manera muy breve. Pregunta: ¿Cuales son los ingredientes para preparar {platillo}. Respuesta:"""
prompt_template = PromptTemplate(input_variables=["platillo"], template=template_basico)
prompt_value: object = prompt_template.format(platillo="tortilla de patata")
El valor entre llaves {platillo} será reemplazado por el valor “tortilla de patata”. Es muy similiar al formateo de plantillas que se utilizan en Twig/Symfony. Para obtener el número de tokens que se van a enviar o utilzar podemos utilizar :
python3 -m pip install tiktoken
print(llm_openai.get_num_tokens(prompt_value))