(Kliknite na obrázok vyššie, aby ste si pozreli video k tejto lekcii)
Doteraz ste v tomto kurze videli, že existujú základné koncepty ako prompty a dokonca celá disciplína nazývaná "prompt engineering". Mnohé nástroje, s ktorými môžete interagovať, ako ChatGPT, Office 365, Microsoft Power Platform a ďalšie, vám umožňujú používať prompty na dosiahnutie určitých cieľov.
Ak chcete pridať takúto skúsenosť do aplikácie, musíte pochopiť koncepty ako prompty, dokončenia a vybrať knižnicu, s ktorou budete pracovať. Presne to sa naučíte v tejto kapitole.
V tejto kapitole sa naučíte:
- O knižnici openai a jej základných konceptoch.
- Ako vytvoriť aplikáciu na generovanie textu pomocou openai.
- Ako používať koncepty ako prompt, teplota a tokeny na vytvorenie aplikácie na generovanie textu.
Na konci tejto lekcie budete schopní:
- Vysvetliť, čo je aplikácia na generovanie textu.
- Vytvoriť aplikáciu na generovanie textu pomocou openai.
- Konfigurovať svoju aplikáciu na použitie viac alebo menej tokenov a tiež zmeniť teplotu pre rôznorodý výstup.
Bežne, keď vytvárate aplikáciu, má nejaký druh rozhrania, ako napríklad:
- Na základe príkazov. Konzolové aplikácie sú typické aplikácie, kde zadáte príkaz a vykoná sa úloha. Napríklad
gitje aplikácia na základe príkazov. - Užívateľské rozhranie (UI). Niektoré aplikácie majú grafické užívateľské rozhrania (GUI), kde klikáte na tlačidlá, zadávate text, vyberáte možnosti a podobne.
Porovnajte to s aplikáciou na základe príkazov, kde zadávate príkaz:
- Je to obmedzené. Nemôžete zadať akýkoľvek príkaz, iba tie, ktoré aplikácia podporuje.
- Špecifické pre jazyk. Niektoré aplikácie podporujú mnoho jazykov, ale predvolene je aplikácia vytvorená pre konkrétny jazyk, aj keď môžete pridať podporu ďalších jazykov.
Ako sa teda aplikácia na generovanie textu líši?
V aplikácii na generovanie textu máte väčšiu flexibilitu, nie ste obmedzení na sadu príkazov alebo konkrétny vstupný jazyk. Namiesto toho môžete používať prirodzený jazyk na interakciu s aplikáciou. Ďalšou výhodou je, že už interagujete s dátovým zdrojom, ktorý bol trénovaný na obrovskom korpuse informácií, zatiaľ čo tradičná aplikácia môže byť obmedzená na to, čo je v databáze.
Existuje mnoho vecí, ktoré môžete vytvoriť. Napríklad:
- Chatbot. Chatbot odpovedajúci na otázky o témach, ako je vaša spoločnosť a jej produkty, by mohol byť dobrým riešením.
- Pomocník. LLM sú skvelé na veci ako sumarizovanie textu, získavanie poznatkov z textu, produkovanie textu ako životopisov a podobne.
- Asistent kódu. V závislosti od jazykového modelu, ktorý používate, môžete vytvoriť asistenta kódu, ktorý vám pomôže písať kód. Napríklad môžete použiť produkt ako GitHub Copilot, ako aj ChatGPT na pomoc pri písaní kódu.
Musíte nájsť spôsob, ako integrovať LLM, čo zvyčajne zahŕňa nasledujúce dva prístupy:
- Použiť API. Tu konštruujete webové požiadavky s vaším promptom a dostanete generovaný text späť.
- Použiť knižnicu. Knižnice pomáhajú zapúzdriť volania API a uľahčujú ich používanie.
Existuje niekoľko známych knižníc na prácu s LLM, ako napríklad:
- openai, táto knižnica uľahčuje pripojenie k vášmu modelu a odosielanie promptov.
Potom existujú knižnice, ktoré fungujú na vyššej úrovni, ako napríklad:
- Langchain. Langchain je dobre známy a podporuje Python.
- Semantic Kernel. Semantic Kernel je knižnica od Microsoftu podporujúca jazyky C#, Python a Java.
Pozrime sa, ako môžeme vytvoriť našu prvú aplikáciu, aké knižnice potrebujeme, koľko je potrebné a podobne.
Existuje mnoho knižníc na interakciu s OpenAI alebo Azure OpenAI. Je možné použiť rôzne programovacie jazyky, ako C#, Python, JavaScript, Java a ďalšie. Vybrali sme si knižnicu openai pre Python, takže ju nainštalujeme pomocou pip.
pip install openaiMusíte vykonať nasledujúce kroky:
-
Vytvorte si účet na Azure https://azure.microsoft.com/free/.
-
Získajte prístup k Azure OpenAI. Prejdite na https://learn.microsoft.com/azure/ai-services/openai/overview#how-do-i-get-access-to-azure-openai a požiadajte o prístup.
[!NOTE] V čase písania je potrebné požiadať o prístup k Azure OpenAI.
-
Nainštalujte Python https://www.python.org/
-
Vytvorte zdroj služby Azure OpenAI. Pozrite si tento návod, ako vytvoriť zdroj.
V tomto bode musíte povedať knižnici openai, aký API kľúč má používať. Ak chcete nájsť svoj API kľúč, prejdite do sekcie "Keys and Endpoint" vášho zdroja Azure OpenAI a skopírujte hodnotu "Key 1".
Teraz, keď máte tieto informácie skopírované, poďme inštruovať knižnice, aby ich použili.
Note
Stojí za to oddeliť váš API kľúč od vášho kódu. Môžete to urobiť pomocou environmentálnych premenných.
- Nastavte environmentálnu premennú
OPENAI_API_KEYna váš API kľúč.export OPENAI_API_KEY='sk-...'
Ak používate Azure OpenAI, tu je postup, ako nastaviť konfiguráciu:
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")Vyššie nastavujeme nasledujúce:
api_typenaazure. To hovorí knižnici, aby používala Azure OpenAI a nie OpenAI.api_key, to je váš API kľúč nájdený v Azure Portáli.api_version, to je verzia API, ktorú chcete použiť. V čase písania je najnovšia verzia2023-05-15.api_base, to je endpoint API. Nájdete ho v Azure Portáli vedľa vášho API kľúča.
[!NOTE] >
os.getenvje funkcia, ktorá číta environmentálne premenné. Môžete ju použiť na čítanie environmentálnych premenných, ako súOPENAI_API_KEYaAPI_BASE. Nastavte tieto environmentálne premenné vo vašom termináli alebo pomocou knižnice akodotenv.
Spôsob, ako generovať text, je použiť triedu Completion. Tu je príklad:
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)V uvedenom kóde vytvárame objekt completion a zadávame model, ktorý chceme použiť, a prompt. Potom vytlačíme generovaný text.
Doteraz ste videli, ako sme používali Completion na generovanie textu. Ale existuje ďalšia trieda nazývaná ChatCompletion, ktorá je vhodnejšia pre chatboty. Tu je príklad jej použitia:
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)Viac o tejto funkcii v nadchádzajúcej kapitole.
Teraz, keď sme sa naučili, ako nastaviť a konfigurovať openai, je čas vytvoriť vašu prvú aplikáciu na generovanie textu. Ak chcete vytvoriť svoju aplikáciu, postupujte podľa týchto krokov:
-
Vytvorte virtuálne prostredie a nainštalujte openai:
python -m venv venv source venv/bin/activate pip install openai[!NOTE] Ak používate Windows, zadajte
venv\Scripts\activatenamiestosource venv/bin/activate.[!NOTE] Nájdite svoj Azure OpenAI kľúč tak, že prejdete na https://portal.azure.com/, vyhľadáte
Open AIa vyberieteOpen AI resource, potom vyberieteKeys and Endpointa skopírujete hodnotuKey 1. -
Vytvorte súbor app.py a vložte do neho nasledujúci kód:
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] Ak používate Azure OpenAI, musíte nastaviť
api_typenaazurea nastaviťapi_keyna váš Azure OpenAI kľúč.Mali by ste vidieť výstup podobný nasledujúcemu:
very unhappy _____. Once upon a time there was a very unhappy mermaid.
Teraz ste videli, ako generovať text pomocou promptu. Dokonca máte program, ktorý môžete upraviť a zmeniť na generovanie rôznych typov textu.
Prompty môžu byť použité na rôzne úlohy. Napríklad:
- Generovanie typu textu. Napríklad môžete generovať báseň, otázky na kvíz a podobne.
- Vyhľadávanie informácií. Môžete použiť prompty na vyhľadávanie informácií, ako napríklad 'Čo znamená CORS vo webovom vývoji?'.
- Generovanie kódu. Môžete použiť prompty na generovanie kódu, napríklad na vývoj regulárneho výrazu na validáciu e-mailov alebo prečo nie na generovanie celého programu, ako je webová aplikácia?
Predstavte si, že máte doma ingrediencie a chcete niečo uvariť. Na to potrebujete recept. Spôsob, ako nájsť recepty, je použiť vyhľadávač alebo môžete použiť LLM.
Môžete napísať prompt, ako napríklad:
"Ukáž mi 5 receptov na jedlo s nasledujúcimi ingredienciami: kuracie mäso, zemiaky a mrkva. Pre každý recept uveďte všetky použité ingrediencie."
Na základe vyššie uvedeného promptu môžete dostať odpoveď podobnú:
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
Tento výsledok je skvelý, viem, čo variť. V tomto bode by mohli byť užitočné vylepšenia, ako napríklad:
- Odstránenie ingrediencií, ktoré nemám rád alebo na ktoré som alergický.
- Vytvorenie nákupného zoznamu, ak nemám všetky ingrediencie doma.
Pre vyššie uvedené prípady pridajme ďalší prompt:
"Prosím, odstráň recepty s cesnakom, pretože som naň alergický, a nahraď ho niečím iným. Tiež prosím vytvor nákupný zoznam pre recepty, berúc do úvahy, že už mám doma kuracie mäso, zemiaky a mrkvu."
Teraz máte nový výsledok, konkrétne:
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
To sú vaše päť receptov, bez zmienky o cesnaku, a tiež máte nákupný zoznam berúc do úvahy, čo už máte doma.
Teraz, keď sme si prešli scenár, napíšme kód, ktorý zodpovedá demonštrovanému scenáru. Ak to chcete urobiť, postupujte podľa týchto krokov:
-
Použite existujúci súbor app.py ako východiskový bod.
-
Nájdite premennú
prompta zmeňte jej kód na nasledujúci:prompt = "Show me 5 recipes for a dish with the following ingredients: chicken, potatoes, and carrots. Per recipe, list all the ingredients used"
Ak teraz spustíte kód, mali by ste vidieť výstup podobný:
-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 cilantroPOZNÁMKA, váš LLM je nedeterministický, takže môžete dostať rôzne výsledky zakaždým, keď spustíte program.
Skvelé, pozrime sa, ako môžeme veci vylepšiť. Aby sme veci vylepšili, chceme sa uistiť, že kód je flexibilný, takže ingrediencie a počet receptov môžu byť vylepšené a zmenené.
-
Zmeňme kód nasledujúcim spôsobom:
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"
Testovanie kódu môže vyzerať takto:
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
Teraz máme funkčnú aplikáciu schopnú produkovať recepty a je flexibilná, pretože sa spolieha na vstupy od používateľa, ako na počet receptov, tak aj na použité ingrediencie.
Aby sme to ďalej vylepšili, chceme pridať nasledujúce:
-
Odstránenie ingrediencií. Chceme byť schopní odstrániť ingrediencie, ktoré nemáme radi alebo na ktoré sme alergickí. Na dosiahnutie tejto zmeny môžeme upraviť náš existujúci prompt a pridať podmienku filtra na jeho koniec, ako napríklad:
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}"
Vyššie pridávame
{filter}na koniec promptu a tiež zachytávame hodnotu filtra od používateľa.Príklad vstupu pri spustení programu teraz môže vyzerať takto:
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.Ako vidíte, akékoľvek recepty s mliekom boli odfiltrované. Ale ak ste intolerantní na laktózu, možno budete chcieť odfiltrovať aj recepty so syrom, takže je potrebné byť jasný.
-
Vytvorenie nákupného zoznamu. Chceme vytvoriť nákupný zoznam, berúc do úvahy, čo už máme doma.
Pre túto funkciu by sme mohli buď skúsiť vyriešiť všetko v jednom prompte, alebo by sme to mohli rozdeliť na dva prompty. Skúsme druhý prístup. Tu navrhujeme pridať ďalší prompt, ale aby to fungovalo, musíme pridať výsledok prvého promptu ako kontext k druhému promptu.
Nájdite časť v kóde, ktorá vypisuje výsledok z prvého promptu, a pridajte nasledujúci kód nižšie:
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)
Všimnite si nasledujúce:
-
Konštruujeme nový prompt pridaním výsledku z prvého promptu k novému promptu:
new_prompt = f"{old_prompt_result} {prompt}"
-
Vytvárame novú požiadavku, ale zároveň berieme do úvahy počet tokenov, ktoré sme požadovali v prvom prompte, takže tentokrát nastavíme
max_tokensna 1200.completion = openai.Completion.create(engine=deployment_name, prompt=new_prompt, max_tokens=1200)
Po vyskúšaní tohto kódu sme dospeli k nasledujúcemu výstupu:
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
-
To, čo máme doteraz, je kód, ktorý funguje, ale existujú určité úpravy, ktoré by sme mali vykonať, aby sme veci ešte viac zlepšili. Niektoré veci, ktoré by sme mali urobiť, sú:
-
Oddelenie tajomstiev od kódu, ako napríklad API kľúč. Tajomstvá nepatria do kódu a mali by byť uložené na bezpečnom mieste. Na oddelenie tajomstiev od kódu môžeme použiť environmentálne premenné a knižnice ako
python-dotenv, ktoré ich načítajú zo súboru. Takto by to vyzeralo v kóde:-
Vytvorte súbor
.envs nasledujúcim obsahom:OPENAI_API_KEY=sk-...
Poznámka: Pre Azure je potrebné nastaviť nasledujúce environmentálne premenné:
OPENAI_API_TYPE=azure OPENAI_API_VERSION=2023-05-15 OPENAI_API_BASE=<replace>
V kóde by ste environmentálne premenné načítali takto:
from dotenv import load_dotenv load_dotenv() openai.api_key = os.environ["OPENAI_API_KEY"]
-
-
Poznámka k dĺžke tokenov. Mali by sme zvážiť, koľko tokenov potrebujeme na generovanie textu, ktorý chceme. Tokeny stoja peniaze, takže kde je to možné, mali by sme sa snažiť byť ekonomickí s počtom použitých tokenov. Napríklad, môžeme formulovať prompt tak, aby sme použili menej tokenov?
Na zmenu počtu použitých tokenov môžete použiť parameter
max_tokens. Napríklad, ak chcete použiť 100 tokenov, urobili by ste:completion = client.chat.completions.create(model=deployment, messages=messages, max_tokens=100)
-
Experimentovanie s teplotou. Teplota je niečo, čo sme doteraz nespomenuli, ale je dôležitým kontextom pre to, ako náš program funguje. Čím vyššia je hodnota teploty, tým náhodnejší bude výstup. Naopak, čím nižšia je hodnota teploty, tým predvídateľnejší bude výstup. Zvážte, či chcete variáciu vo výstupe alebo nie.
Na zmenu teploty môžete použiť parameter
temperature. Napríklad, ak chcete použiť teplotu 0.5, urobili by ste:completion = client.chat.completions.create(model=deployment, messages=messages, temperature=0.5)
Poznámka: Čím bližšie k 1.0, tým rozmanitejší bude výstup.
Pre toto zadanie si môžete vybrať, čo chcete vytvoriť.
Tu sú niektoré návrhy:
- Vylepšite aplikáciu na generovanie receptov. Experimentujte s hodnotami teploty a promptmi, aby ste zistili, čo dokážete vytvoriť.
- Vytvorte "študijného partnera". Táto aplikácia by mala byť schopná odpovedať na otázky o téme, napríklad Python. Mohli by ste mať prompty ako "Čo je určitá téma v Pythone?" alebo prompt, ktorý hovorí "Ukáž mi kód pre určitú tému" atď.
- Historický bot, oživte históriu, inštruujte bota, aby hral určitú historickú postavu a pýtajte sa ho otázky o jeho živote a dobe.
Nižšie je úvodný prompt, pozrite sa, ako ho môžete použiť a prispôsobiť podľa svojich predstáv.
- "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"
Tu sú niektoré prompty, ktoré by ste mohli použiť:
- "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 robí koncept teploty?
- Ovláda, ako náhodný je výstup.
- Ovláda, aký veľký je výstup.
- Ovláda, koľko tokenov sa použije.
Pri práci na zadaní skúste meniť teplotu, nastavte ju na 0, 0.5 a 1. Pamätajte, že 0 je najmenej rozmanitá a 1 je najrozmanitejšia. Aká hodnota najlepšie funguje pre vašu aplikáciu?
Po dokončení tejto lekcie si pozrite našu zbierku učenia o generatívnej AI, aby ste pokračovali v rozvíjaní svojich znalostí o generatívnej AI!
Prejdite na Lekciu 7, kde sa pozrieme na to, ako vytvárať chatovacie aplikácie!
Zrieknutie sa zodpovednosti:
Tento dokument bol preložený pomocou služby AI prekladu Co-op Translator. Hoci sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nenesieme zodpovednosť za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.

