OWIS ChatGPT dodatak
U brzo mijenjajućem svijetu digitalnih tehnologija, sposobnost brzog i učinkovitog pristupa informacijama postala je nužnost. Kao razvojni inženjeri OWIS sistema, prepoznali smo potencijal korištenja umjetne inteligencije za poboljšanje korisničkog iskustva. To nas je dovelo do stvaranja našeg ChatGPT plugin-a, osmišljenog za pružanje informacija u stvarnom vremenu o OWIS sistemu.
Naš plugin služi kao spona između ChatGPT-a i OWIS sistema, omogućujući korisnicima direktan pristup informacijama o OWIS sistemu direktno kroz ChatGPT aplikaciju.
U ovom članku prikazati ćemo tehničke aspekte našeg plugin-a, njegov razvoj, funkcionalnost i jedinstvenu vrijednost koju donosi korisnicima OWIS sistema.
Potreba za dodatkom
U ogromnom području umjetne inteligencije, ChatGPT se ističe kao moćan alat sposoban za razumijevanje i generiranje teksta sličnog ljudskom. Međutim, njegovo znanje temelji se na raznolikom skupu prethodnih podataka do određenog trenutka i nema sposobnost pristupa informacijama u stvarnom vremenu specifičnim za sistem. Tu naš plugin dolazi do izražaja.
OWIS sistem, sa svojim složenim funkcionalnostima i širokim mogućnostima, predstavlja složenu cjelinu. Korisnici često imaju pitanja o njegovim modulima, upravljanju procesima, upravljanju dokumentima i drugim aspektima. Iako je ChatGPT izvrstan konverzacijski AI, bez OWIS ChatGPT plugin-a nedostaje mu specifično znanje o OWIS sistemu.
U osnovi, OWIS ChatGPT plugin transformira ChatGPT u vodiča za OWIS sistem, poboljšavajući korisničko iskustvo i čineći pristup informacijama jednostavnim poput razgovora.
Kako ChatGPT plugin radi
Jedna od popularnih vrsta ChatGPT plugina je "ChatGPT Retrieval plugin". Ova vrsta plugin-a koristi se za pružanje informacija u stvarnom vremenu o određenoj domeni.
Ukratko, korisnik ChatGPT aplikacije može instalirati dostupne plugin-e kao ekstenzije za ChatGPT aplikaciju. Plugin predstavlja skup API-ja koji su dostupni ChatGPT aplikaciji. Kada korisnik postavi pitanje, ChatGPT aplikacija u pozadini proziva jedan od dostupnih API-ja. API je odgovoran za vraćanje teksta ChatGPT aplikaciji, koji sadrži odgovor na korisnikovo pitanje. Taj tekst služi kao kontekst na temelju kojeg ChatGPT daje odgovor korisniku.
Trenutno su ChatGPT plugin-i dostupni samo pretplatnicima ChatGPT Plus i developerima. Moguće je instalirati neograničen broj plugin-a, ali u jednom trenutku može biti aktivno samo tri plugin-a.
Aktiviranjem željenih plugin-a, čine ih dostupnim ChatGPT aplikaciji, gdje ChatGPT na temelju razgovora odlučuje hoće li koristiti neki od plugin-a.
Kako ChatGPT zna koji plugin koristiti na temelju korisnikovog pitanja?
Pri objavljivanju plugin-a, potrebno je definirati manifest datoteku koja bi trebala biti smještena na yourdomain.com/.well-known/ai-plugin.json.
Sadržaj datoteke je u sljedećem formatu:
{
"schema_version": "v1",
"name_for_model": "owis",
"name_for_human": "OWIS",
"description_for_model": "Your description for model",
"description_for_human": "Your description for human",
"auth": {
"type": "service_http",
"authorization_type": "bearer",
"verification_tokens": {
"openai": ""
}
},
"api": {
"type": "openapi",
"url": "yourdomain.com/.well-known/openapi.yaml",
"has_user_authentication": false
},
"logo_url": "yourdomain.com/.well-known/logo.png",
"contact_email": "",
"legal_info_url": ""
}
Kao što vidite, jedno od polja u ovoj datoteci je 'description_for_model'. U tom polju potrebno je pružiti opis ili upute ChatGPT aplikaciji o tome što plugin predstavlja i kada ga može koristiti.
Primjer:
"Dodatak za dohvaćanje informacija o OWIS sustavu. OWIS predstavlja integrirano rješenje..."
ChatGPT sprema vrijednost ovog polja u embedding tj. vektorskom formatu. Kada korisnik postavi pitanje, ChatGPT pravi embedding pitanja i računa kosinusnu sličnost između embedding-a upita i embedding-a opisa aktivnih plugin-a. Na temelju ove kosinusne sličnosti, ChatGPT određuje da li će koristiti neki od plugin-a, i ako da, koji.
Kako ChatGPT određuje koji API koristiti?
Vidjeli smo kako ChatGPT određuje koji plugin koristiti na temelju korisnikovog pitanja. Budući da plugin može sadržavati više API-ja koji su dostupni ChatGPT-u, postavlja se pitanje kako ChatGPT zna koji API koristiti?
Osim manifest datoteke, potrebno je da developeri definišu dostupne API-je u datoteci: yourdomain.com/.well-known/openapi.yaml, koristeći OPENAPI specifikaciju.
Ova datoteka treba pružiti jasan opis API-ja kao i svih parametara. Ti opisi služe kao smjernice za ChatGPT aplikaciju u određivanju koji API proziva i s kojim parametrima.
Na primjer, pretpostavimo da razvijamo plugin za zadatke (Todo plugin) koji, između ostalog, sadrži API za kreiranje zadatka sa payload-om: {"text": string, "due_date": Date}.
Ako korisnik ChatGPT aplikacije ima aktiviran to-do plugin, može ga aktivirati sljedećom porukom:
Korisnik: Kreiraj zadatak: "Odgovorite na e-mail do 08.12.2023."
Na temelju ove poruke, ChatGPT će pretpostaviti da treba pozvati API za kreiranje zadatka i pozvat će ga s sljedećim parametrima: {"text": "Odgovorite na e-mail", "due_date": 08.12.2023}.
Još jedan primjer poruke može biti:
Korisnik: Kreiraj zadatak: "Odgovorite na e-mail do petka."
U ovom slučaju, ChatGPT će poslati datum prvog sljedećeg petka za due_date.
ChatGPT transformira parametre na temelju razgovora kako bi se uskladili s pozvanim API-jem.
Na primjer, ako korisnik postavi prvo pitanje:
Korisnik: "Šta su akcije u OWIS sistemu?"
ChatGPT će pozvati API i vjerojatno proslijediti tekst nepromijenjen:
ChatGPT proziva API s pitanjem: "Šta su akcije u OWIS sistemu?"
Međutim, ako korisnik postavi sljedeće pitanje:
Korisnik: "A akcije?"
ChatGPT će taj tekst preoblikovati u format koji bolje odgovara API-ju:
ChatGPT proziva API s pitanjem: "Što su akcije u OWIS sistemu?"
To nas dovodi do ideje da možemo instruirati ChatGPT kako da transformiše parametre prije proozivanja API-ja.
Na primjer, OWIS ChatGPT plugin sadrži API api/query s parametrom queries: string[].
S obzirom na to da je OWIS baza znanja trenutno na bosanskom jeziku, bilo je potrebno transformisati parametar i prevesti ga na bosanski jezik. Stoga smo u OPENAPI specifikaciji dali upute ChatGPT-u da prevede pitanje na bosanski jezik, ako korisnik postavi pitanje na drugom jeziku. To omogućuje OWIS ChatGPT plugin da bude dostupan svim korisnicima bez obzira na njihov jezik.
required:
- queries
type: object
properties:
queries:
type: array
description: …Query list MUST be in Bosnian language. Translate if not in Bosnian…