(Clique na imagem acima para assistir ao vídeo desta lição)
Até agora, você viu neste currículo que existem conceitos fundamentais como prompts e até mesmo uma disciplina inteira chamada "engenharia de prompts". Muitas ferramentas com as quais você pode interagir, como ChatGPT, Office 365, Microsoft Power Platform e outras, permitem que você use prompts para realizar algo.
Para adicionar essa experiência a um aplicativo, você precisa entender conceitos como prompts, completions e escolher uma biblioteca para trabalhar. É exatamente isso que você aprenderá neste capítulo.
Neste capítulo, você irá:
- Aprender sobre a biblioteca openai e seus conceitos principais.
- Construir um aplicativo de geração de texto usando openai.
- Entender como usar conceitos como prompt, temperatura e tokens para construir um aplicativo de geração de texto.
Ao final desta lição, você será capaz de:
- Explicar o que é um aplicativo de geração de texto.
- Construir um aplicativo de geração de texto usando openai.
- Configurar seu aplicativo para usar mais ou menos tokens e também alterar a temperatura para obter resultados variados.
Normalmente, quando você constrói um aplicativo, ele tem algum tipo de interface como as seguintes:
- Baseado em comandos. Aplicativos de console são típicos, onde você digita um comando e ele executa uma tarefa. Por exemplo,
gité um aplicativo baseado em comandos. - Interface de usuário (UI). Alguns aplicativos têm interfaces gráficas de usuário (GUIs) onde você clica em botões, insere texto, seleciona opções e mais.
Compare com um aplicativo baseado em comandos onde você digita um comando:
- É limitado. Você não pode simplesmente digitar qualquer comando, apenas os que o aplicativo suporta.
- Específico de idioma. Alguns aplicativos suportam muitos idiomas, mas, por padrão, o aplicativo é construído para um idioma específico, mesmo que você possa adicionar suporte a mais idiomas.
Então, como um aplicativo de geração de texto é diferente?
Em um aplicativo de geração de texto, você tem mais flexibilidade, não está limitado a um conjunto de comandos ou a um idioma de entrada específico. Em vez disso, você pode usar linguagem natural para interagir com o aplicativo. Outro benefício é que você já está interagindo com uma fonte de dados que foi treinada em um vasto corpus de informações, enquanto um aplicativo tradicional pode ser limitado ao que está em um banco de dados.
Há muitas coisas que você pode construir. Por exemplo:
- Um chatbot. Um chatbot que responde perguntas sobre tópicos, como sua empresa e seus produtos, pode ser uma boa opção.
- Assistente. LLMs são ótimos para coisas como resumir textos, obter insights de textos, produzir textos como currículos e mais.
- Assistente de código. Dependendo do modelo de linguagem que você usa, pode construir um assistente de código que ajuda você a escrever código. Por exemplo, você pode usar um produto como GitHub Copilot, bem como o ChatGPT, para ajudar a escrever código.
Bem, você precisa encontrar uma maneira de integrar com um LLM, o que geralmente envolve as seguintes duas abordagens:
- Usar uma API. Aqui você constrói requisições web com seu prompt e recebe o texto gerado de volta.
- Usar uma biblioteca. Bibliotecas ajudam a encapsular as chamadas de API e tornam seu uso mais fácil.
Existem algumas bibliotecas bem conhecidas para trabalhar com LLMs, como:
- openai, esta biblioteca facilita a conexão com seu modelo e o envio de prompts.
Além disso, existem bibliotecas que operam em um nível mais alto, como:
- Langchain. Langchain é bem conhecida e suporta Python.
- Semantic Kernel. Semantic Kernel é uma biblioteca da Microsoft que suporta as linguagens C#, Python e Java.
Vamos ver como podemos construir nosso primeiro aplicativo, quais bibliotecas precisamos, o que é necessário e assim por diante.
Existem muitas bibliotecas disponíveis para interagir com OpenAI ou Azure OpenAI. É possível usar várias linguagens de programação, como C#, Python, JavaScript, Java e mais. Escolhemos usar a biblioteca Python openai, então usaremos o pip para instalá-la.
pip install openaiVocê precisa realizar os seguintes passos:
-
Criar uma conta no Azure https://azure.microsoft.com/free/.
-
Obter acesso ao Azure OpenAI. Acesse https://learn.microsoft.com/azure/ai-services/openai/overview#how-do-i-get-access-to-azure-openai e solicite acesso.
[!NOTE] No momento da escrita, você precisa solicitar acesso ao Azure OpenAI.
-
Instalar Python https://www.python.org/
-
Criar um recurso do serviço Azure OpenAI. Veja este guia sobre como criar um recurso.
Neste ponto, você precisa informar à sua biblioteca openai qual chave de API usar. Para encontrar sua chave de API, vá para a seção "Keys and Endpoint" do recurso Azure OpenAI e copie o valor "Key 1".
Agora que você copiou essas informações, vamos instruir as bibliotecas a usá-las.
Note
Vale a pena separar sua chave de API do seu código. Você pode fazer isso usando variáveis de ambiente.
- Defina a variável de ambiente
OPENAI_API_KEYcomo sua chave de API.export OPENAI_API_KEY='sk-...'
Se você estiver usando o Azure OpenAI, veja como configurar:
openai.api_type = 'azure'
openai.api_key = os.environ["OPENAI_API_KEY"]
openai.api_version = '2023-05-15'
openai.api_base = os.getenv("API_BASE")Acima, estamos configurando o seguinte:
api_typecomoazure. Isso informa à biblioteca para usar o Azure OpenAI e não o OpenAI.api_key, esta é sua chave de API encontrada no Portal Azure.api_version, esta é a versão da API que você deseja usar. No momento da escrita, a versão mais recente é2023-05-15.api_base, este é o endpoint da API. Você pode encontrá-lo no Portal Azure ao lado da sua chave de API.
[!NOTE] >
os.getenvé uma função que lê variáveis de ambiente. Você pode usá-la para ler variáveis de ambiente comoOPENAI_API_KEYeAPI_BASE. Defina essas variáveis de ambiente no seu terminal ou usando uma biblioteca comodotenv.
A maneira de gerar texto é usar a classe Completion. Aqui está um exemplo:
prompt = "Complete the following: Once upon a time there was a"
completion = openai.Completion.create(model="davinci-002", prompt=prompt)
print(completion.choices[0].text)No código acima, criamos um objeto de completion e passamos o modelo que queremos usar e o prompt. Em seguida, imprimimos o texto gerado.
Até agora, você viu como usamos Completion para gerar texto. Mas há outra classe chamada ChatCompletion que é mais adequada para chatbots. Aqui está um exemplo de uso:
import openai
openai.api_key = "sk-..."
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello world"}])
print(completion.choices[0].message.content)Mais sobre essa funcionalidade em um capítulo futuro.
Agora que aprendemos como configurar e configurar o openai, é hora de construir seu primeiro aplicativo de geração de texto. Para construir seu aplicativo, siga estes passos:
-
Crie um ambiente virtual e instale o openai:
python -m venv venv source venv/bin/activate pip install openai[!NOTE] Se você estiver usando Windows, digite
venv\Scripts\activateem vez desource venv/bin/activate.[!NOTE] Localize sua chave do Azure OpenAI acessando https://portal.azure.com/, procure por
Open AI, selecione o recursoOpen AIe, em seguida, selecioneKeys and Endpointe copie o valor deKey 1. -
Crie um arquivo app.py e insira o seguinte código:
import openai openai.api_key = "<replace this value with your open ai key or Azure OpenAI key>" openai.api_type = 'azure' openai.api_version = '2023-05-15' openai.api_base = "<endpoint found in Azure Portal where your API key is>" deployment_name = "<deployment name>" # add your completion code prompt = "Complete the following: Once upon a time there was a" messages = [{"role": "user", "content": prompt}] # make completion completion = openai.chat.completions.create(model=deployment_name, messages=messages) # print response print(completion.choices[0].message.content)
[!NOTE] Se você estiver usando Azure OpenAI, precisará definir o
api_typecomoazuree configurar oapi_keycom sua chave do Azure OpenAI.Você verá uma saída semelhante à seguinte:
very unhappy _____. Once upon a time there was a very unhappy mermaid.
Agora você viu como gerar texto usando um prompt. Você já tem um programa em funcionamento que pode modificar e alterar para gerar diferentes tipos de texto.
Os prompts podem ser usados para diversos tipos de tarefas. Por exemplo:
- Gerar um tipo de texto. Por exemplo, você pode gerar um poema, perguntas para um quiz, etc.
- Buscar informações. Você pode usar prompts para buscar informações, como no exemplo: "O que significa CORS no desenvolvimento web?".
- Gerar código. Você pode usar prompts para gerar código, por exemplo, desenvolver uma expressão regular usada para validar e-mails ou até mesmo gerar um programa inteiro, como um aplicativo web.
Imagine que você tem ingredientes em casa e quer cozinhar algo. Para isso, você precisa de uma receita. Uma maneira de encontrar receitas é usar um mecanismo de busca ou você pode usar um LLM para isso.
Você poderia escrever um prompt assim:
"Mostre-me 5 receitas para um prato com os seguintes ingredientes: frango, batatas e cenouras. Para cada receita, liste todos os ingredientes usados."
Dado o prompt acima, você pode obter uma resposta semelhante a esta:
1. Roasted Chicken and Vegetables:
Ingredients:
- 4 chicken thighs
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 2 tablespoons olive oil
- 2 cloves garlic, minced
- 1 teaspoon dried thyme
- 1 teaspoon dried oregano
- Salt and pepper, to taste
2. Chicken and Potato Stew:
Ingredients:
- 2 tablespoons olive oil
- 1 onion, diced
- 2 cloves garlic, minced
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 teaspoon dried oregano
- 1 teaspoon dried thyme
- 1 cup chicken broth
- Salt and pepper, to taste
3. Chicken and Potato Bake:
Ingredients:
- 2 tablespoons olive oil
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 onion, diced
- 2 cloves garlic, minced
- 1 teaspoon dried oregano
- 1 teaspoon dried thyme
- 1 cup chicken broth
- Salt and pepper, to taste
4. Chicken and Potato Soup:
Ingredients:
- 2 tablespoons olive oil
- 1 onion, diced
- 2 cloves garlic, minced
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 teaspoon dried oregano
- 1 teaspoon dried thyme
- 4 cups chicken broth
- Salt and pepper, to taste
5. Chicken and Potato Hash:
Ingredients:
- 2 tablespoons olive oil
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 onion, diced
- 2 cloves garlic, minced
- 1 teaspoon dried oregano
Este resultado é ótimo, agora sei o que cozinhar. Neste ponto, melhorias úteis poderiam ser:
- Filtrar ingredientes que não gosto ou aos quais sou alérgico.
- Produzir uma lista de compras, caso eu não tenha todos os ingredientes em casa.
Para os casos acima, vamos adicionar um prompt adicional:
"Por favor, remova receitas com alho, pois sou alérgico, e substitua por outra coisa. Além disso, produza uma lista de compras para as receitas, considerando que já tenho frango, batatas e cenouras em casa."
Agora você tem um novo resultado, que seria:
1. Roasted Chicken and Vegetables:
Ingredients:
- 4 chicken thighs
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 2 tablespoons olive oil
- 1 teaspoon dried thyme
- 1 teaspoon dried oregano
- Salt and pepper, to taste
2. Chicken and Potato Stew:
Ingredients:
- 2 tablespoons olive oil
- 1 onion, diced
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 teaspoon dried oregano
- 1 teaspoon dried thyme
- 1 cup chicken broth
- Salt and pepper, to taste
3. Chicken and Potato Bake:
Ingredients:
- 2 tablespoons olive oil
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 onion, diced
- 1 teaspoon dried oregano
- 1 teaspoon dried thyme
- 1 cup chicken broth
- Salt and pepper, to taste
4. Chicken and Potato Soup:
Ingredients:
- 2 tablespoons olive oil
- 1 onion, diced
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 teaspoon dried oregano
- 1 teaspoon dried thyme
- 4 cups chicken broth
- Salt and pepper, to taste
5. Chicken and Potato Hash:
Ingredients:
- 2 tablespoons olive oil
- 2 chicken breasts, cut into cubes
- 2 potatoes, cut into cubes
- 2 carrots, cut into cubes
- 1 onion, diced
- 1 teaspoon dried oregano
Shopping List:
- Olive oil
- Onion
- Thyme
- Oregano
- Salt
- Pepper
Essas são suas cinco receitas, sem menção ao alho, e você também tem uma lista de compras considerando o que já tem em casa.
Agora que simulamos um cenário, vamos escrever um código para corresponder ao cenário demonstrado. Para fazer isso, siga estes passos:
-
Use o arquivo app.py existente como ponto de partida.
-
Localize a variável
prompte altere seu código para o seguinte:prompt = "Show me 5 recipes for a dish with the following ingredients: chicken, potatoes, and carrots. Per recipe, list all the ingredients used"
Se você executar o código agora, verá uma saída semelhante a:
-Chicken Stew with Potatoes and Carrots: 3 tablespoons oil, 1 onion, chopped, 2 cloves garlic, minced, 1 carrot, peeled and chopped, 1 potato, peeled and chopped, 1 bay leaf, 1 thyme sprig, 1/2 teaspoon salt, 1/4 teaspoon black pepper, 1 1/2 cups chicken broth, 1/2 cup dry white wine, 2 tablespoons chopped fresh parsley, 2 tablespoons unsalted butter, 1 1/2 pounds boneless, skinless chicken thighs, cut into 1-inch pieces -Oven-Roasted Chicken with Potatoes and Carrots: 3 tablespoons extra-virgin olive oil, 1 tablespoon Dijon mustard, 1 tablespoon chopped fresh rosemary, 1 tablespoon chopped fresh thyme, 4 cloves garlic, minced, 1 1/2 pounds small red potatoes, quartered, 1 1/2 pounds carrots, quartered lengthwise, 1/2 teaspoon salt, 1/4 teaspoon black pepper, 1 (4-pound) whole chicken -Chicken, Potato, and Carrot Casserole: cooking spray, 1 large onion, chopped, 2 cloves garlic, minced, 1 carrot, peeled and shredded, 1 potato, peeled and shredded, 1/2 teaspoon dried thyme leaves, 1/4 teaspoon salt, 1/4 teaspoon black pepper, 2 cups fat-free, low-sodium chicken broth, 1 cup frozen peas, 1/4 cup all-purpose flour, 1 cup 2% reduced-fat milk, 1/4 cup grated Parmesan cheese -One Pot Chicken and Potato Dinner: 2 tablespoons olive oil, 1 pound boneless, skinless chicken thighs, cut into 1-inch pieces, 1 large onion, chopped, 3 cloves garlic, minced, 1 carrot, peeled and chopped, 1 potato, peeled and chopped, 1 bay leaf, 1 thyme sprig, 1/2 teaspoon salt, 1/4 teaspoon black pepper, 2 cups chicken broth, 1/2 cup dry white wine -Chicken, Potato, and Carrot Curry: 1 tablespoon vegetable oil, 1 large onion, chopped, 2 cloves garlic, minced, 1 carrot, peeled and chopped, 1 potato, peeled and chopped, 1 teaspoon ground coriander, 1 teaspoon ground cumin, 1/2 teaspoon ground turmeric, 1/2 teaspoon ground ginger, 1/4 teaspoon cayenne pepper, 2 cups chicken broth, 1/2 cup dry white wine, 1 (15-ounce) can chickpeas, drained and rinsed, 1/2 cup raisins, 1/2 cup chopped fresh cilantroNOTA, seu LLM é não determinístico, então você pode obter resultados diferentes toda vez que executar o programa.
Ótimo, vamos ver como podemos melhorar as coisas. Para melhorar, queremos garantir que o código seja flexível, para que os ingredientes e o número de receitas possam ser ajustados e alterados.
-
Vamos alterar o código da seguinte maneira:
no_recipes = input("No of recipes (for example, 5): ") ingredients = input("List of ingredients (for example, chicken, potatoes, and carrots): ") # interpolate the number of recipes into the prompt an ingredients prompt = f"Show me {no_recipes} recipes for a dish with the following ingredients: {ingredients}. Per recipe, list all the ingredients used"
Executar o código de teste pode resultar em algo assim:
No of recipes (for example, 5): 3 List of ingredients (for example, chicken, potatoes, and carrots): milk,strawberries -Strawberry milk shake: milk, strawberries, sugar, vanilla extract, ice cubes -Strawberry shortcake: milk, flour, baking powder, sugar, salt, unsalted butter, strawberries, whipped cream -Strawberry milk: milk, strawberries, sugar, vanilla extract
Agora temos um aplicativo funcional capaz de produzir receitas e é flexível, pois depende das entradas do usuário, tanto no número de receitas quanto nos ingredientes usados.
Para melhorar ainda mais, queremos adicionar o seguinte:
-
Filtrar ingredientes. Queremos ser capazes de filtrar ingredientes que não gostamos ou aos quais somos alérgicos. Para realizar essa alteração, podemos editar nosso prompt existente e adicionar uma condição de filtro ao final dele, como segue:
filter = input("Filter (for example, vegetarian, vegan, or gluten-free): ") prompt = f"Show me {no_recipes} recipes for a dish with the following ingredients: {ingredients}. Per recipe, list all the ingredients used, no {filter}"
Acima, adicionamos
{filter}ao final do prompt e também capturamos o valor do filtro do usuário.Um exemplo de entrada ao executar o programa agora pode ser assim:
No of recipes (for example, 5): 3 List of ingredients (for example, chicken, potatoes, and carrots): onion,milk Filter (for example, vegetarian, vegan, or gluten-free): no milk 1. French Onion Soup Ingredients: -1 large onion, sliced -3 cups beef broth -1 cup milk -6 slices french bread -1/4 cup shredded Parmesan cheese -1 tablespoon butter -1 teaspoon dried thyme -1/4 teaspoon salt -1/4 teaspoon black pepper Instructions: 1. In a large pot, sauté onions in butter until golden brown. 2. Add beef broth, milk, thyme, salt, and pepper. Bring to a boil. 3. Reduce heat and simmer for 10 minutes. 4. Place french bread slices on soup bowls. 5. Ladle soup over bread. 6. Sprinkle with Parmesan cheese. 2. Onion and Potato Soup Ingredients: -1 large onion, chopped -2 cups potatoes, diced -3 cups vegetable broth -1 cup milk -1/4 teaspoon black pepper Instructions: 1. In a large pot, sauté onions in butter until golden brown. 2. Add potatoes, vegetable broth, milk, and pepper. Bring to a boil. 3. Reduce heat and simmer for 10 minutes. 4. Serve hot. 3. Creamy Onion Soup Ingredients: -1 large onion, chopped -3 cups vegetable broth -1 cup milk -1/4 teaspoon black pepper -1/4 cup all-purpose flour -1/2 cup shredded Parmesan cheese Instructions: 1. In a large pot, sauté onions in butter until golden brown. 2. Add vegetable broth, milk, and pepper. Bring to a boil. 3. Reduce heat and simmer for 10 minutes. 4. In a small bowl, whisk together flour and Parmesan cheese until smooth. 5. Add to soup and simmer for an additional 5 minutes, or until soup has thickened.Como você pode ver, qualquer receita com leite foi filtrada. Mas, se você for intolerante à lactose, pode querer filtrar também receitas com queijo, então é necessário ser claro.
-
Produzir uma lista de compras. Queremos produzir uma lista de compras, considerando o que já temos em casa.
Para essa funcionalidade, poderíamos tentar resolver tudo em um único prompt ou dividir em dois prompts. Vamos tentar a segunda abordagem. Aqui estamos sugerindo adicionar um prompt adicional, mas para que isso funcione, precisamos adicionar o resultado do primeiro prompt como contexto ao segundo prompt.
Localize a parte do código que imprime o resultado do primeiro prompt e adicione o seguinte código abaixo:
old_prompt_result = completion.choices[0].message.content prompt = "Produce a shopping list for the generated recipes and please don't include ingredients that I already have." new_prompt = f"{old_prompt_result} {prompt}" messages = [{"role": "user", "content": new_prompt}] completion = openai.Completion.create(engine=deployment_name, messages=messages, max_tokens=1200) # print response print("Shopping list:") print(completion.choices[0].message.content)
Observe o seguinte:
-
Estamos construindo um novo prompt adicionando o resultado do primeiro prompt ao novo prompt:
new_prompt = f"{old_prompt_result} {prompt}"
-
Fazemos uma nova solicitação, mas também considerando o número de tokens que pedimos no primeiro prompt, então desta vez dizemos que
max_tokensé 1200.completion = openai.Completion.create(engine=deployment_name, prompt=new_prompt, max_tokens=1200)
Testando este código, chegamos ao seguinte resultado:
No of recipes (for example, 5): 2 List of ingredients (for example, chicken, potatoes, and carrots): apple,flour Filter (for example, vegetarian, vegan, or gluten-free): sugar -Apple and flour pancakes: 1 cup flour, 1/2 tsp baking powder, 1/2 tsp baking soda, 1/4 tsp salt, 1 tbsp sugar, 1 egg, 1 cup buttermilk or sour milk, 1/4 cup melted butter, 1 Granny Smith apple, peeled and grated -Apple fritters: 1-1/2 cups flour, 1 tsp baking powder, 1/4 tsp salt, 1/4 tsp baking soda, 1/4 tsp nutmeg, 1/4 tsp cinnamon, 1/4 tsp allspice, 1/4 cup sugar, 1/4 cup vegetable shortening, 1/4 cup milk, 1 egg, 2 cups shredded, peeled apples Shopping list: -Flour, baking powder, baking soda, salt, sugar, egg, buttermilk, butter, apple, nutmeg, cinnamon, allspice
-
O que temos até agora é um código que funciona, mas há alguns ajustes que devemos fazer para melhorar ainda mais. Algumas coisas que devemos fazer são:
-
Separar segredos do código, como a chave da API. Segredos não devem estar no código e devem ser armazenados em um local seguro. Para separar segredos do código, podemos usar variáveis de ambiente e bibliotecas como
python-dotenvpara carregá-los de um arquivo. Veja como isso ficaria no código:-
Crie um arquivo
.envcom o seguinte conteúdo:OPENAI_API_KEY=sk-...
Nota: para Azure, você precisa definir as seguintes variáveis de ambiente:
OPENAI_API_TYPE=azure OPENAI_API_VERSION=2023-05-15 OPENAI_API_BASE=<replace>
No código, você carregaria as variáveis de ambiente assim:
from dotenv import load_dotenv load_dotenv() openai.api_key = os.environ["OPENAI_API_KEY"]
-
-
Uma observação sobre o comprimento dos tokens. Devemos considerar quantos tokens precisamos para gerar o texto desejado. Tokens têm custo, então, sempre que possível, devemos tentar ser econômicos com a quantidade de tokens que usamos. Por exemplo, podemos formular o prompt de forma que use menos tokens?
Para alterar os tokens usados, você pode usar o parâmetro
max_tokens. Por exemplo, se quiser usar 100 tokens, você faria:completion = client.chat.completions.create(model=deployment, messages=messages, max_tokens=100)
-
Experimentando com a temperatura. Temperatura é algo que ainda não mencionamos, mas é um contexto importante para o desempenho do nosso programa. Quanto maior o valor da temperatura, mais aleatório será o resultado. Por outro lado, quanto menor o valor da temperatura, mais previsível será o resultado. Considere se você deseja variação no seu resultado ou não.
Para alterar a temperatura, você pode usar o parâmetro
temperature. Por exemplo, se quiser usar uma temperatura de 0.5, você faria:completion = client.chat.completions.create(model=deployment, messages=messages, temperature=0.5)
Nota: quanto mais próximo de 1.0, mais variado será o resultado.
Para esta tarefa, você pode escolher o que deseja construir.
Aqui estão algumas sugestões:
- Ajustar o aplicativo gerador de receitas para melhorá-lo ainda mais. Experimente valores de temperatura e os prompts para ver o que você consegue criar.
- Construir um "companheiro de estudos". Este aplicativo deve ser capaz de responder perguntas sobre um tópico, por exemplo, Python. Você pode ter prompts como "O que é um determinado tópico em Python?" ou um prompt que diga "Mostre-me o código para um determinado tópico", etc.
- Bot de história, faça a história ganhar vida, instrua o bot a interpretar um personagem histórico específico e faça perguntas sobre sua vida e época.
Abaixo está um prompt inicial, veja como você pode usá-lo e ajustá-lo ao seu gosto.
- "You're an expert on the Python language
Suggest a beginner lesson for Python in the following format:
Format:
- concepts:
- brief explanation of the lesson:
- exercise in code with solutions"
Aqui estão alguns prompts que você pode usar:
- "You are Abe Lincoln, tell me about yourself in 3 sentences, and respond using grammar and words like Abe would have used"
- "You are Abe Lincoln, respond using grammar and words like Abe would have used:
Tell me about your greatest accomplishments, in 300 words"
O que o conceito de temperatura faz?
- Controla o quão aleatório é o resultado.
- Controla o tamanho da resposta.
- Controla quantos tokens são usados.
Ao trabalhar na tarefa, tente variar a temperatura, experimente configurá-la para 0, 0.5 e 1. Lembre-se de que 0 é o menos variado e 1 é o mais variado. Qual valor funciona melhor para o seu aplicativo?
Depois de concluir esta lição, confira nossa coleção de aprendizado sobre IA generativa para continuar aprimorando seu conhecimento sobre IA generativa!
Vá para a Lição 7, onde veremos como construir aplicativos de chat!
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional feita por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução.

