Průvodce rozhraním ChatGPT API

15.12.2023 Raspberry Pi #chatgpt #gpt #api

Soubor příkladů pro úvod do ChatGPT API.


Průvodce OpenAI API a co s ním můžete dělat

Generativní síla ChatGPT způsobila od svého spuštění šílenství v technologickém světě. Za účelem sdílení intuice AI vydala OpenAI 1. března 2023 rozhraní API ChatGPT a Whisper, aby vývojáři mohli prozkoumávat a používat v aplikaci.

Rozhraní API OpenAI obsahují mnoho cenných koncových bodů, které usnadňují integraci AI. Pojďme prozkoumat sílu OpenAI API, abychom viděli, jak vám mohou pomoci.

Co umí OpenAI API?

OpenAI API obsahuje spoustu utilit pro programátory. Pokud máte v úmyslu poskytovat umělou inteligenci v aplikaci denně, OpenAI vám usnadní život pomocí následujících schopností.

Chat

Koncový bod dokončení chatu OpenAI API pomáhá koncovému uživateli vytvořit přirozenou, lidsky přátelskou interaktivní relaci s virtuálním asistentem pomocí modelu GPT-3.5-turbo.

V zákulisí volání API používá pole zpráv s rolemi a obsahem. Na straně uživatele je obsah souborem pokynů pro virtuálního asistenta, který uživatele zaujme, zatímco pro model je obsahem jeho odezva.

Role nejvyšší úrovně je systém, kde definujete celkovou funkci virtuálního asistenta. Například, když programátor řekne systému něco jako „jste užitečný virtuální asistent“, očekáváte, že bude reagovat na různé otázky v rámci své kapacity učení.

Poté, co řekl, že je to "užitečný virtuální asistent," zde je návod, jak probíhal jeden z našich chatů příkazového řádku s modelem GPT-3.5-turbo:

Výkon modelu můžete dokonce zlepšit zadáním parametrů, jako je teplota, penalizace přítomnosti, frekvenční penalizace a další. Pokud jste někdy používali ChatGPT, už víte, jak funguje model dokončení chatu OpenAI.

Text Completion

Rozhraní API pro dokončování textu poskytuje funkce konverzace, vkládání textu a dokončování textu na základě pokročilých modelů GPT-3.5.

Model šampióna v koncovém bodu dokončování textu je text-davinci-003, který je podstatně intuitivnější než modely přirozeného jazyka GPT-3. Koncový bod přijímá výzvu uživatele, což modelu umožňuje přirozeně reagovat a dokončit jednoduché až složité věty pomocí textu přátelského k člověku.

Přestože koncový bod dokončování textu není tak intuitivní jako koncový bod chatu, bude se zlepšovat – když zvýšíte počet textových tokenů dodávaných do modelu text-davinci-003.

Například jsme dosáhli některých nedodělaných dokončení, když jsme umístili model na max_tokens sedm:

Zvýšení max_tokens na 70 však poskytlo koherentnější výstupy:

Převod řeči na text

Zvukovou řeč můžete přepisovat a překládat pomocí koncových bodů přepisu a překladu OpenAI. Koncové body převodu řeči na text jsou založeny na modelu Whisper v2-large, který byl vyvinut prostřednictvím rozsáhlého slabého dohledu.

OpenAI však říká, že mezi jejím modelem Whisper a modelem s otevřeným zdrojovým kódem není žádný rozdíl. Nabízí tedy nekonečné možnosti pro integraci vícejazyčného přepisovače a překladatelské umělé inteligence do vaší aplikace ve velkém měřítku.

Použití koncového bodu je jednoduché. Jediné, co musíte udělat, je dodat modelu zvukový soubor a zavolat openai.Audio.translate nebo openai.Audio.transcribe koncový bod pro jeho překlad nebo přepis. Tyto koncové body přijímají maximální velikost souboru 25 MB a podporují většinu typů zvukových souborů, včetně mp3, mp4, MPEG, MPGA, m4a, wav a webm.

Textu Comparison

Koncový bod porovnání textu OpenAI API měří vztah mezi texty pomocí modelu vkládání textu-ada-002, modelu vkládání druhé generace. Rozhraní API pro vkládání používá tento model k vyhodnocení vztahu mezi texty na základě vzdálenosti mezi dvěma vektorovými body. Čím větší je rozdíl, tím méně jsou srovnávané texty související.

Koncový bod vkládání obsahuje shlukování textu, rozdíly, relevanci, doporučení, pocity a klasifikaci. Navíc se účtuje za objem tokenů.

Ačkoli dokumentace OpenAI říká, že můžete použít jiné modely vestavění první generace, první z nich je lepší s levnější cenou. OpenAI však varuje, že model vkládání může vykazovat sociální zaujatost vůči určitým lidem, jak bylo prokázáno v testech.

Code Completion

Koncový bod pro dokončování kódu je postaven na OpenAI Codex, sadě modelů trénovaných pomocí přirozeného jazyka a miliard řádků kódu z veřejných úložišť.

Koncový bod je v omezené beta verzi a je zdarma od okamžiku psaní, nabízí podporu pro mnoho moderních programovacích jazyků, včetně JavaScriptu, Pythonu, Go, PHP, Ruby, Shell, TypeScript, Swift, Perl a SQL.

U modelu code-davinci-002 nebo code-cushman-001 může koncový bod dokončování kódu automaticky vkládat řádky kódu nebo točit bloky kódu z výzvy uživatele. Zatímco druhý model je rychlejší, první je hybnou silou koncového bodu, protože obsahuje vkládání kódu pro automatické dokončování kódu.

Můžete například vygenerovat blok kódu odesláním výzvy do koncového bodu v komentáři k cílovému jazyku.

Zde jsou některé odpovědi, které jsme dostali, když jsme se pokusili generovat některé bloky kódu v Pythonu a JavaScriptu přes terminál:

Generování obrazu

Toto je jedna z nejintuitivnějších funkcí OpenAI API. Na základě obrazového modelu DALL.E obsahuje funkce obrazu OpenAI API koncové body pro generování, úpravy a vytváření variant obrazu z výzev v přirozeném jazyce.

Přestože zatím nemá pokročilé funkce, jako je upscaling, protože je stále ve verzi beta, jeho neškálované výstupy jsou působivější než výstupy generativních uměleckých modelů, jako je Midjourney a Stabilní difúze.

Při zásahu do koncového bodu generování obrázku stačí zadat výzvu, velikost obrázku a počet obrázků. Koncový bod úpravy obrázku však vyžaduje, abyste kromě ostatních parametrů zahrnuli obrázek, který chcete upravit, a masku RGBA označující bod úprav.

Koncový bod variace na druhé straně vyžaduje pouze cílový obrázek, počet variací a výstupní velikost. V době psaní tohoto článku mohou koncové body beta obrázků OpenAI přijímat pouze čtvercové snímky v rozsahu 256x256, 512x512 a 1024x1024 pixelů.

Abyste mohli začít používat ChatGPT API, musíte nejprve získat klíče OpenAI API. Zaregistrujte se nebo se přihlaste na oficiální platformu OpenAI.

Jakmile jste přihlášeni, klikněte na kartu Osobní v pravé horní části. Z rozbalovací nabídky vyberte možnost Zobrazit klíče API a zobrazí se klíče API na stránce vygenerujete klíč API.Vytvořit nový tajný klíč. Kliknutím na tlačítko.

Klíč nebudete moci znovu zobrazit, proto jej uložte na bezpečném místě.

Jak používat ChatGPT API

Rozhraní OpenAI API gpt-3.5-turbo a gpt-4 modely jsou stejné modely, které používají ChatGPT a ChatGPT+. Tyto výkonné modely jsou schopny porozumět a generovat text v přirozeném jazyce.

ChatGPT API je obecný termín, který odkazuje na OpenAI API, která používají modely založené na GPT pro vývoj chatbotů, včetně gpt-3.5-turbo a gpt-4.

Rozhraní ChatGPT API je primárně optimalizováno pro chat, ale dobře funguje také pro úlohy dokončování textu. Modely gpt-3.5-turbo a gpt-4 jsou výkonnější a levnější než předchozí modely GPT-3. V době psaní však nemůžete modely GPT-3.5 doladit. Doladit můžete pouze základní modely GPT-3, tj. davincicurieada a zelí.

Použití ChatGPT API pro Chat Completion

Aby se dalo využít API musí se nakonfigurovat model chatu. To lze lépe pochopit pomocí příkladu:

import openai

openai.api_key = "YOUR_API_KEY"

completion = openai.ChatCompletion.create(
  model = "gpt-3.5-turbo",
  temperature = 0.8,
  max_tokens = 2000,
  messages = [
      {"role": "system", "content": "You are a funny comedian who tells dad jokes."},
      {"role": "user", "content": "Write a dad joke related to numbers."},
      {"role": "assistant", "content": "Q: How do you make 7 even? A: Take away the s."},
      {"role": "user", "content": "Write one related to programmers."}
 ]
)

print(completion.choices[0].message)

Spuštění tohoto kódu vytvoří následující výstup:

Výše uvedený kód ukazuje volání ChatGPT API pomocí Pythonu. Všimněte si, že model byl schopen porozumět kontextu a typu odpovědi, které jsme očekávali, i když se to v poslední výzvě uživatele výslovně nezmínilo.

Při sestavování aplikací tak lze předem poskytnout kontext a model se podle toho přizpůsobí vašim požadavkům.

Nejdůležitější částí je zde parametr messages, který přijímá pole objektů zpráv. Každý objekt zprávy obsahuje roli a obsah. Objektům zpráv můžete poskytnout tři typy rolí:

  • systém: Nastavuje kontext a chování asistenta.
  • uživatel: Používá se k zadávání pokynů asistentovi. Obvykle je generován koncovým uživatelem. Ale vy jako vývojář můžete také předem poskytnout některé potenciální uživatelské výzvy.
  • asistent: Asistentovi poskytujeme předem nějaké informace, aby nám poskytl odpověď, kterou od API očekáváme.

Parametry teplota a max_tokens můžete dále přizpůsobit modelu, abyste získali výstup podle vašich požadavků.

Čím vyšší je teplota, tím vyšší je náhodnost výstupu a naopak. Pokud chcete, aby vaše odpovědi byly cílenější a determinističtější, zvolte nižší hodnotu teploty. A pokud chcete, aby to bylo kreativnější, jděte na vyšší hodnotu. Hodnota teploty se pohybuje mezi 0 a 2.

Stejně jako ChatGPT má i jeho API limit slov. Pomocí parametru max_tokens omezte délku odpovědí. Nastavení nižší hodnoty max_tokens však může způsobit potenciální problémy, protože může uprostřed přerušit výstup. V době psaní má model gpt-3.5-turbo limit tokenů 4 096, zatímco gpt-4 model má limit 8 192 tokenů.

Model můžete dále konfigurovat pomocí dalších parametrů poskytovaných OpenAI.

Použití ChatGPT API pro Text Completion

Kromě úkolů dokončování chatu odvádí model gpt-3.5-turbo dobrou práci také s dokončováním textu. Překonává předchozí model text-davinci-003 a jeho cena je pouze desetina jeho nákladů.

Následující příklad ukazuje, jak můžete nakonfigurovat rozhraní ChatGPT API pro dokončování textu:

import openai

openai.api_key = "YOUR_API_KEY"

completion = openai.ChatCompletion.create(
  model = "gpt-3.5-turbo",
  temperature = 0.8,
  max_tokens = 2000,
  messages = [
        {"role": "system", "content": "You are a poet who creates poems that evoke emotions."},
        {"role": "user", "content": "Write a short poem for programmers."}
    ]
)

print(completion.choices[0].message.content)

Nelze ani definovat systémovou roli a její obsah. Poskytnutí pouze uživatelské výzvy udělá práci za vás.

messages = [
  {"role": "user", "content": "Write a short poem for programmers."}
]

Spuštění výše uvedeného kódu vygeneruje báseň pro programátory:

Formát odpovědi rozhraní ChatGPT API

ChatGPT API odešle odpověď v následujícím formátu:

Dále musíte extrahovat odpověď asistenta, která je uložena v obsahu.

Vytváření aplikací pomocí ChatGPT API

Můžete přímo použít koncový bod API nebo openai Python/Node.js knihovnu a začít vytvářet aplikace využívající ChatGPT API. Kromě oficiální knihovny openai můžete také vyvíjet aplikace pomocí komunitou spravovaných knihoven doporučených OpenAI

OpenAI však neověřuje bezpečnost těchto komunitou spravovaných knihoven, takže je lepší buď přímo použít koncový bod API, nebo použít oficiální openai Knihovna Python/Node.js.

Metoda 1: Použití koncového bodu API

Abyste mohli používat gpt-3.5, musíte použít koncový bod /v1/chat/completions -turbo a gpt-4 modely.

import requests

openai.api_key = "YOUR_API_KEY"
URL = "https://api.openai.com/v1/chat/completions"

payload = {
  "model": "gpt-3.5-turbo",
  "temperature" : 1.0,
  "messages" : [
    {"role": "system", "content": f"You are an assistant who tells any random and very short fun fact about this world."},
    {"role": "user", "content": f"Write a fun fact about programmers."},
    {"role": "assistant", "content": f"Programmers drink a lot of coffee!"},
    {"role": "user", "content": f"Write one related to the Python programming language."}
  ]
}

headers = {
  "Content-Type": "application/json",
  "Authorization": f"Bearer {openai.api_key}"
}

response = requests.post(URL, headers=headers, json=payload)
response = response.json()

print(response['choices'][0]['message']['content'])

Výše ukázkový kód ukazuje, jak můžete přímo použít koncový bod k volání API pomocí knihovny requests.

Nejprve přiřaďte klíč API k proměnné. Dále je třeba zadat název modelu do parametru model užitné zátěže objekt. Poté jsme poskytli historii konverzace do parametru zprávy.

Zde jsme ponechali vyšší hodnotu teploty, takže naše reakce je náhodnější, a tím i kreativnější.

Zde je výstup odpovědi:

Metoda 2: Použití oficiální openai knihovny

Nainstalujte openai knihovnu Python pomocí pip:

pip3 install openai

Nyní jste připraveni generovat dokončení textu nebo chatu.

import openai

openai.api_key = "YOUR_API_KEY"

response = openai.ChatCompletion.create(
  model = "gpt-3.5-turbo",
  temperature = 0.2,
  max_tokens = 1000,
  messages = [
    {"role": "user", "content": "Who won the 2018 FIFA world cup?"}
  ]
)

print(response['choices'][0]['message']['content'])

V tomto kódu jsme poskytli pouze výzvu pro jednoho uživatele. Udrželi jsme nízkou hodnotu teploty, abychom udrželi odezvu spíše deterministickou než kreativní.

Po spuštění kódu obdržíte následující odpověď:

Odpovědi ChatGPT se mohou zdát magické a mohou každého přimět k tomu, aby se divil, jak ChatGPT funguje. Ale v zákulisí je podporován jazykovým modelem Generative Pre-trained Transformer (GPT), který dělá veškerou těžkou práci.

Literatura:

https://www.makeuseof.com/chatgpt-api-complete-guide/