Vamos continuar o nosso tutorial de um projeto LangChain Python e Streamlit.
Vamos agora inserir o PromptTemplate em nosso projeto.
Para iniciarmos, vamos nos lembrar onde paramos. Este abaixo é o código do nosso projeto até o momento.
from langchain.llms import OpenAI
from dotenv import load_dotenv
load_dotenv()
def generate_pet_name():
    llm = OpenAI(temperature=0.7)
    name = llm(“Please, give me 5 suggestions for dog names”)
    return name
if __name__ == “__main__”
    print(generate_pet_name())E temos até o momento os seguintes arquivos e pastas no diretório do nosso projeto:
Uma pasta chamada .venv
Dois arquivos: .env e main.pyEntão, vamos acrescentar o Prompt Template, no nosso projeto, inserindo a seguinte linha de código:
prompt_template_name = PromptTemplate()Para usarmos essa classe PromptTemplate() em nosso código, precisamos primeiro importá-la para o nosso script. Para isso inserimos o seguinte no topo do nosso script:
from langchain.prompts import PromptTemplateVamos agora, acrescentar um variável na classe PromptTemplate(). Vamos fazer da seguinte forma:
prompt_template_name = PromptTemplate(
    input_variables=['animal_type']
)E precisamos também acrescentar essa variável como parâmetro de nossa função generate_pet_name().
def generate_pet_name(animal_type)E vamos também, acrescentar um PromptTemplate:
prompt_template_name = PromptTemplate(
    input_variables=['animal_type']
    template=(“Please, give me 5 suggestions for dog names”)
)Vamos substituir a palavra dog do prompt por um place holder chamado {animal_type}. Então, o nosso código vai ficar assim:
template=(“Please, give me 5 suggestions for {animal_type} names”)Como isso, o nosso script recebe dinamicamente o tipo de animal que o usuário informar.
Vamos agora, acrescentar a classe LLMChain ao nosso projeto da seguinte forma:
from langchain.chains import LLMChainsCom o LLMChains nós podemos combinar o nosso objeto llm e o prompt_template_name, para enviarmos o nosso prompt ao ChatGPT e recebermos a resposta.
Para isso, vamos fazer da seguinte forma:
name_chain = LLMChain(llm=llm, prompt=prompt_template_name)Em seguida, acrescentamos o seguinte:
response = name_chain({'animal_type': 'animal_type'})
return responseAgora, podermos fazer uso de parâmetros quando executamos a nossa função:
print(generate_pet_name("cat"))Agora, vamos executar o nosso script, usando o seguinte comando em nosso terminal:
python main.pyComo resposta, nós temos uma json resposta com os nomes sugeridos pela LLM.
{'animal_type': 'cat', 'text': '\n\n1. Mochi\2. Nacho\n3. Pebbles\n4. Tiger\n5. Whiskers'}Agora, podemo adicionar um segundo parâmetro para a nossa função que seria a cor do animal. E nós vamos fazer isso da seguinte forma:
def generate_pet_name(animal_type, pet_color)Vamos também precisar acrescentar no input_variables do PromptTemplate:
input_variables=['animal_type', 'pet_color']Agora, vamos acrescentar também a nova variável no prompt template:
 template=(“Please, give me 5 suggestions for my {pet_color}{animal_type} names”)Vamos, também precisar acrescentar esse variável como parâmetro do nosso objeto name_chain:
response = name_chain({'animal_type': 'animal_type', 'pet_color': 'pet_color'})Pronto, agora podemos executar o nosso script, passando duas variáveis. Uma informando o tipo de animal e a outra informando a cor do animal.
print(generate_pet_name("cat", "black"))E na resposta, podermos verificar que o script está passando essas duas informações para o LLM e recebendo a resposta.(JSON formato)
{'animal_type': 'Dog', 'pet_color': 'black', 'text': '\n\n1. Shadow\n2. Midnight\n3. Onyx\n4. Coal\n5. Jet'}Perfeito! O nosso script está funcionando!
Aqui está todo o código do nosso script até o momento:
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from dotenv import load_dotenv
load_dotenv()
def generate_pet_name(animal_type, pet_color):
    #Criando uma instância(objeto) da classe OpenAI, passando um único parâmetro ao construtor.
    llm = OpenAI(temperature=0.7)
    prompt_tamplate_name = PromptTemplate(
        input_variables=['animal_type', 'pet_color'],
        template="I just got a {pet_color}{animal_type} and I would like to give it a name. Could you please, helpe me with that? Could you suggest 5 names for my pet?"
    )
    #Vamos passar o nosso prompt, e receber a resposta da LLM, usando o nosso objeto llm.
    name_chain = LLMChain(llm=llm, prompt=prompt_tamplate_name)
    response = name_chain({'animal_type': animal_type, 'pet_color': pet_color})
    return response
if __name__ == "__main__":
    print(generate_pet_name("Dog", "black"))No próximo tutorial, vamos construir uma web interace para o nosso projeto.