Udostępnienie API do Chata GPT to nowy poziom użytkowania tego narzędzia. Od teraz możemy używać chata bezpośrednio w naszych kodach, tworząc zautomatyzowane programy polegające na jego wiedzy.
Wchodzimy na stronę https://platform.openai.com/apps i tym razem nie wybieramy opcji Chat GPT tylko API:


W zakładce Usage możemy sprawdzić stan naszych środków do wykorzystania w API. Uwaga! Środki na API są odrębnymi kosztami od płatnych wersji Chata GPT
Najbardziej interesującą nas zakładką jest API Keys, gdzie widzimy wygenerowane przez nas klucze, za pomocą którego w kodach będziemy się łączyć z chatem. Możemy wygenerować także nowy klucz.
Importujemy lub instalujemy bibliotekę OpenAI:
import openai
import os
Wpisujemy nasz klucz:
api_key = 'xxx'
Tworzymy zapytanie do Chata GPT:
openai.api_key = api_key
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo", # Wybór modelu GPT-3.5 Turbo
messages=[
{"role": "system", "content": "Jesteś agentem windykacji"}, # Instrukcja dla modelu
{"role": "user", "content": "Klient przeklina, co robić?"} # Pytanie użytkownika
],
temperature=0.5, # Parametr kontrolujący kreatywność odpowiedzi (0 - deterministyczne, 1 - losowe)
max_tokens=2400, # Maksymalna liczba tokenów (słów/fragmentów tekstu) w odpowiedzi
top_p=0.95, # Parametr kontrolujący różnorodność odpowiedzi (sampling nucleus)
frequency_penalty=0, # Kara za powtarzanie tych samych słów/fraz w odpowiedzi
presence_penalty=0 # Kara za wprowadzanie nowych tematów do odpowiedzi
)
print(response.choices[0].message['content']) # wyswietlanie generowanej odpowiedzi
Przykład użycia z operacją na pliku
Aby użyć chata na plikach, musimy plik ten wcześniej przygotować i zapisać jako tekst.
import pandas as pd
df = pd.read_excel('sciezka/kwoty.xlsx')
descriptions = df['property2'].to_list()
def analyze_description(description):
response = openai.ChatCompletion.create(
model="gpt-4", # Użyj odpowiedniego modelu
messages=[
{"role": "system", "content": "You are a data analysis assistant."},
{"role": "user", "content": f"Wyznacz największą liczbę z tekstu. Podaj tylko liczbę, bez innych wyrazów, nie pokazuj liczb dziesiętnych \n{description}"}
],
max_tokens=150,
temperature=0.7
)
return response.choices[0].message['content'].strip()
df['Analysis'] = df['property2'].apply(analyze_description)