(Clique na imagem acima para ver o vídeo desta lição)
Até agora, neste currículo, já viu que existem conceitos fundamentais como prompts e até uma disciplina inteira chamada "engenharia de prompts". Muitas ferramentas com as quais pode interagir, como o ChatGPT, Office 365, Microsoft Power Platform e outras, suportam o uso de prompts para realizar tarefas.
Para adicionar essa experiência a uma aplicação, precisa de compreender conceitos como prompts, completions e escolher uma biblioteca para trabalhar. É exatamente isso que vai aprender neste capítulo.
Neste capítulo, irá:
- Aprender sobre a biblioteca openai e os seus conceitos principais.
- Construir uma aplicação de geração de texto usando openai.
- Compreender como usar conceitos como prompt, temperature e tokens para criar uma aplicação de geração de texto.
No final desta lição, será capaz de:
- Explicar o que é uma aplicação de geração de texto.
- Construir uma aplicação de geração de texto usando openai.
- Configurar a sua aplicação para usar mais ou menos tokens e também alterar a temperature, para obter resultados variados.
Normalmente, quando constrói uma aplicação, esta tem algum tipo de interface como as seguintes:
- Baseada em comandos. Aplicações de consola são típicas aplicações onde escreve um comando e este executa uma tarefa. Por exemplo,
gité uma aplicação baseada em comandos. - Interface de utilizador (UI). Algumas aplicações têm interfaces gráficas (GUIs) onde clica em botões, insere texto, seleciona opções e mais.
Compare com uma aplicação baseada em comandos onde escreve um comando:
- É limitada. Não pode simplesmente escrever qualquer comando, apenas os que a aplicação suporta.
- Específica de linguagem. Algumas aplicações suportam várias línguas, mas por padrão a aplicação é construída para uma língua específica, mesmo que possa adicionar suporte a mais línguas.
Então, como é que uma aplicação de geração de texto é diferente?
Numa aplicação de geração de texto, tem mais flexibilidade, não está limitado a um conjunto de comandos ou a uma língua específica de entrada. Em vez disso, pode usar linguagem natural para interagir com a aplicação. Outra vantagem é que, porque já está a interagir com uma fonte de dados treinada num vasto corpus de informação, enquanto uma aplicação tradicional pode estar limitada ao que está numa base de dados.
Há muitas coisas que pode construir. Por exemplo:
- Um chatbot. Um chatbot que responde a perguntas sobre temas, como a sua empresa e os seus produtos, pode ser uma boa opção.
- Assistente. Os LLMs são ótimos para coisas como resumir texto, obter insights de texto, produzir texto como currículos e mais.
- Assistente de código. Dependendo do modelo de linguagem que usar, pode construir um assistente de código que o ajuda a escrever código. Por exemplo, pode usar um produto como o GitHub Copilot assim como o ChatGPT para ajudar a escrever código.
Bem, precisa de encontrar uma forma de integrar com um LLM, o que normalmente implica as seguintes duas abordagens:
- Usar uma API. Aqui está a construir pedidos web com o seu prompt e recebe texto gerado de volta.
- Usar uma biblioteca. As bibliotecas ajudam a encapsular as chamadas à API e tornam-nas mais fáceis de usar.
Existem algumas bibliotecas bem conhecidas para trabalhar com LLMs como:
- openai, esta biblioteca facilita a ligação ao seu modelo e o envio de prompts.
Depois, há bibliotecas que operam a um nível mais alto como:
- Langchain. Langchain é bem conhecido e suporta Python.
- Semantic Kernel. Semantic Kernel é uma biblioteca da Microsoft que suporta as linguagens C#, Python e Java.
Vamos ver como podemos construir a nossa primeira aplicação, que bibliotecas precisamos, quanto é necessário e assim por diante.
Existem muitas bibliotecas 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, por isso vamos usar o pip para a instalar.
pip install openaiPrecisa de realizar os seguintes passos:
-
Criar uma conta no Azure https://azure.microsoft.com/free/.
-
Obter acesso ao Azure OpenAI. Vá a 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, precisa de solicitar acesso ao Azure OpenAI.
-
Instalar Python https://www.python.org/
-
Ter criado um recurso Azure OpenAI Service. Veja este guia para saber como criar um recurso.
Neste ponto, precisa de indicar à sua biblioteca openai qual chave API usar. Para encontrar a sua chave API, vá à secção "Keys and Endpoint" do seu recurso Azure OpenAI e copie o valor de "Key 1".
Agora que tem esta informação copiada, vamos instruir as bibliotecas a usá-la.
Note
Vale a pena separar a sua chave API do seu código. Pode fazê-lo usando variáveis de ambiente.
- Defina a variável de ambiente
OPENAI_API_KEYpara a sua chave API.export OPENAI_API_KEY='sk-...'
Se estiver a usar Azure OpenAI, aqui está 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 a definir o seguinte:
api_typeparaazure. Isto indica à biblioteca para usar Azure OpenAI e não OpenAI.api_key, esta é a sua chave API encontrada no Portal Azure.api_version, esta é a versão da API que quer usar. No momento da escrita, a versão mais recente é2023-05-15.api_base, este é o endpoint da API. Pode encontrá-lo no Portal Azure ao lado da sua chave API.
[!NOTE] >
os.getenvé uma função que lê variáveis de ambiente. Pode usá-la para ler variáveis comoOPENAI_API_KEYeAPI_BASE. Defina estas variáveis no seu terminal ou usando uma biblioteca comodotenv.
A forma 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 completion e passamos o modelo que queremos usar e o prompt. Depois imprimimos o texto gerado.
Até agora, viu como temos usado Completion para gerar texto. Mas há outra classe chamada ChatCompletion que é mais adequada para chatbots. Aqui está um exemplo de como usá-la:
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 esta funcionalidade num capítulo futuro.
Agora que aprendemos como configurar e usar openai, é hora de construir a sua primeira aplicação de geração de texto. Para construir a sua aplicação, siga estes passos:
-
Crie um ambiente virtual e instale openai:
python -m venv venv source venv/bin/activate pip install openai[!NOTE] Se estiver a usar Windows, escreva
venv\Scripts\activateem vez desource venv/bin/activate.[!NOTE] Localize a sua chave Azure OpenAI indo a https://portal.azure.com/, pesquise por
Open AI, selecione oOpen AI resourcee depois selecioneKeys and Endpointe copie o valor deKey 1. -
Crie um ficheiro app.py e coloque 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 estiver a usar Azure OpenAI, precisa de definir
api_typeparaazuree definirapi_keypara a sua chave Azure OpenAI.Deve ver uma saída semelhante a esta:
very unhappy _____. Once upon a time there was a very unhappy mermaid.
Agora que viu como gerar texto usando um prompt, tem até um programa a funcionar que pode modificar para gerar diferentes tipos de texto.
Os prompts podem ser usados para todo o tipo de tarefas. Por exemplo:
- Gerar um tipo de texto. Por exemplo, pode gerar um poema, perguntas para um quiz, etc.
- Pesquisar informação. Pode usar prompts para procurar informação como no exemplo 'O que significa CORS no desenvolvimento web?'.
- Gerar código. Pode usar prompts para gerar código, por exemplo, desenvolver uma expressão regular para validar emails ou até gerar um programa completo, como uma aplicação web.
Imagine que tem ingredientes em casa e quer cozinhar algo. Para isso, precisa de uma receita. Uma forma de encontrar receitas é usar um motor de busca ou pode usar um LLM para isso.
Poderia escrever um prompt assim:
"Mostra-me 5 receitas para um prato com os seguintes ingredientes: frango, batatas e cenouras. Por receita, lista todos os ingredientes usados"
Dado o prompt acima, poderá obter uma resposta semelhante a:
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, já 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 não tenha todos os ingredientes em casa.
Para os casos acima, vamos adicionar um prompt adicional:
"Por favor, remove receitas com alho pois sou alérgico e substitui por outro ingrediente. Além disso, por favor produz uma lista de compras para as receitas, considerando que já tenho frango, batatas e cenouras em casa."
Agora tem um novo resultado, nomeadamente:
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
Estas são as suas cinco receitas, sem alho mencionado, e também tem uma lista de compras considerando o que já tem em casa.
Agora que encenámos um cenário, vamos escrever código para corresponder ao cenário demonstrado. Para isso, siga estes passos:
-
Use o ficheiro app.py existente como ponto de partida
-
Localize a variável
prompte altere o 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 agora executar o código, deverá 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 cilantroNOTE, o seu LLM é não determinístico, por isso pode obter resultados diferentes cada vez que executar o programa.
Ótimo, vamos ver como podemos melhorar as coisas. Para melhorar, queremos garantir que o código é flexível, para que os ingredientes e o número de receitas possam ser alterados e melhorados.
-
Vamos alterar o código da seguinte forma:
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"
Um teste do código pode ficar 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 uma aplicação funcional capaz de produzir receitas e é flexível pois depende de entradas do utilizador, tanto no número de receitas como nos ingredientes usados.
Para melhorar ainda mais, queremos adicionar o seguinte:
-
Filtrar ingredientes. Queremos poder filtrar ingredientes que não gostamos ou aos quais somos alérgicos. Para isso, podemos editar o nosso prompt existente e adicionar uma condição de filtro no final, assim:
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}no final do prompt e também capturamos o valor do filtro do utilizador.Um exemplo de entrada ao executar o programa pode agora 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 pode ver, quaisquer receitas com leite foram filtradas. Mas, se for intolerante à lactose, poderá querer filtrar também receitas com queijo, por isso é importante ser claro.
-
Produzir uma lista de compras. Queremos produzir uma lista de compras, considerando o que já temos em casa.
Para esta funcionalidade, poderíamos tentar resolver tudo num único prompt ou dividir em dois prompts. Vamos tentar a segunda abordagem. Aqui sugerimos adicionar um prompt adicional, mas para isso funcionar, precisamos de adicionar o resultado do primeiro prompt como contexto para o 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)
Note o seguinte:
-
Estamos a construir um novo prompt adicionando o resultado do primeiro prompt ao novo prompt:
new_prompt = f"{old_prompt_result} {prompt}"
-
Fazemos um novo pedido, mas também considerando o número de tokens que pedimos no primeiro prompt, por isso desta vez definimos
max_tokenscomo 1200.completion = openai.Completion.create(engine=deployment_name, prompt=new_prompt, max_tokens=1200)
Testando este código, chegamos agora 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 guardados num local seguro. Para separar segredos do código, podemos usar variáveis de ambiente e bibliotecas como
python-dotenvpara as carregar a partir de um ficheiro. Veja como isso ficaria no código:-
Crie um ficheiro
.envcom o seguinte conteúdo:OPENAI_API_KEY=sk-...
-
Nota, para Azure, precisa de definir as seguintes variáveis de ambiente:
```bash
OPENAI_API_TYPE=azure
OPENAI_API_VERSION=2023-05-15
OPENAI_API_BASE=<replace>
```
No código, carregaria as variáveis de ambiente assim:
```python
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.environ["OPENAI_API_KEY"]
```
-
Uma palavra sobre o comprimento dos tokens. Devemos considerar quantos tokens precisamos para gerar o texto que queremos. Os tokens têm custo, por isso, sempre que possível, devemos tentar ser económicos com o número de tokens usados. Por exemplo, podemos reformular o prompt para usar menos tokens?
Para alterar o número de tokens usados, pode usar o parâmetro
max_tokens. Por exemplo, se quiser usar 100 tokens, faria:completion = client.chat.completions.create(model=deployment, messages=messages, max_tokens=100)
-
Experimentar com a temperatura. A temperatura é algo que ainda não mencionámos, mas é um contexto importante para o desempenho do nosso programa. Quanto maior o valor da temperatura, mais aleatória será a saída. Por outro lado, quanto menor o valor da temperatura, mais previsível será a saída. Pense se quer variação na sua saída ou não.
Para alterar a temperatura, pode usar o parâmetro
temperature. Por exemplo, se quiser usar uma temperatura de 0.5, faria:completion = client.chat.completions.create(model=deployment, messages=messages, temperature=0.5)
Nota, quanto mais próximo de 1.0, mais variada será a saída.
Para esta tarefa, pode escolher o que construir.
Aqui ficam algumas sugestões:
- Ajuste a aplicação geradora de receitas para a melhorar ainda mais. Experimente valores de temperatura e os prompts para ver o que consegue criar.
- Crie um "companheiro de estudo". Esta aplicação deve ser capaz de responder a perguntas sobre um tema, por exemplo Python, pode ter prompts como "O que é determinado tema em Python?", ou um prompt que diga, mostra-me código para determinado tema, etc.
- Bot de história, faça a história ganhar vida, instrua o bot para interpretar uma certa personagem histórica e faça-lhe perguntas sobre a sua vida e época.
Abaixo está um prompt inicial, veja como 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 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 faz o conceito de temperatura?
- Controla o quão aleatória é a saída.
- Controla o tamanho da resposta.
- Controla quantos tokens são usados.
Ao trabalhar na tarefa, tente variar a temperatura, experimente defini-la para 0, 0.5 e 1. Lembre-se que 0 é o menos variado e 1 o mais. Qual valor funciona melhor para a sua aplicação?
Depois de completar esta lição, consulte a nossa coleção de Aprendizagem de IA Generativa para continuar a aprimorar os seus conhecimentos em IA Generativa!
Siga para a Lição 7 onde vamos ver como construir aplicações de chat!
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução automática Co-op Translator. Embora nos esforcemos pela precisão, por favor tenha em conta que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações erradas decorrentes da utilização desta tradução.

