Izpētīt kodu https://github.com/asya-ai/asya-chatbot-tele2-2023-q3 (invite sent)
Tavas koda izmaiņas taisi jaunā branch “betija”
Sistēma strādā pēc principa “Zero-shot” jeb “Prompt-fine tunning”.
Ar scraper kodu (citā repo) tiek izveidots tele2_data.json
Tad katrs jautājums tiek padots Text Embedding modelim un izveido tele2_embs_en_ai.pkl
Tad, kad uzdod jautājumu, tiek sameklēts pēc cosine distance tuvākais jautājums un teksts tiek pievienots
Izveidot UML sequence / flow diagrammu un atsūtīt Evaldam ar to kā tiek apstrādāts katrs prompt un kāds fonā saturs tiek lietots. Jāņem vērā sekojošais, lai palīdzētu izprast kodu:
Backendā viss notiek angļu valodā, pats chatgpt tiek izmantots tulkošanai, jo Google translate ir neprecīzāks
Sākotnēji, ja vēl neeksistē, tad no data.json izveido text embeddings, bet katru faktu uz vienu un to pašu jautājumu sadala pa 500 chars (varbūt vajag savādāk)
Vārdu skaitam promptā ir limitācija, nedrīkst pārāk garus 1200 vārdi
Prompts sastāv no (šobrīd mazliet haoss ar Angļu un Latviešu valodu - vajadzētu, ka viss prompt ir Angliski tikai un arī visas daļas pa vidu Question: Answer:)
Iepriekšējiem Jautājumiem - atbildēm (ja par garu šos pirmos griež nost). Tiek izmantots summary no atbildēm, lai samazinātu prompt
Vēl tiek pārbaudīts vai iepriekšējie jautājumi ir par vienu tēmu, bet tas šobrīd ne visai labi strādā
Faktiem no data.json formātā Jautājums - atbilde (num_results=4 šobrīd)
Gala jautājums angliski
Gala prompts angliski “Answer following question in Latvian:”
is_valid_answer pārbauda, ka atbilde ir latviski un par tēmu
Atrast un salabot bug, ka šobrīd piemēram nepareizas atsauces dažreiz tiek pievienotas:
Iziet cauri un dokumentēt ar screenshots šos čatus un prasības no Tele2 puses, ja nepareizas atbildes dod bots, tad atrast materiālos (linkos, kur ir pareiza info un dokumentēt un atsūtīt Evaldam, lai pievieno pie tele2_data.json). 🔴 Ja nepieciešams veikt izmaiņas kodā, distanču aprēķinos, prompts utt, lai panāktu labāku rezultātu. Pārbaudīt vai tiešām nepieciešamā informācija jau nav tele2_data.json iekšā un sistēma vienkārši to neatrod.
Tele2 prasības: http://share.yellowrobot.xyz/quick/2023-7-11-928ACE4A-7477-4122-9F57-38CDBB090F9C.zip
Veikt code refactoring un satīrīt:
Nav nepieciešams, ka ControllerLangChain būtu dažādiem uzņēmumiem kopējs, vajag vienkāršot datu struktūras un nepieciešams, ka datu struktūrām izveido python dataclass, dataclass_json ielādējot json
Novākt LangChain bibliotēku un aizstāt ar tīru OpenAI API - tur nejēdzīgi sarežģīti šobrīd. Vajadzētu izeidot vienkāršu wrapper funkciju, tos aizvietojamos vārdus var ievietot vienkārši ar f strings
xxxxxxxxxx
111import openai
2openai.api_key = 'YOUR_API_KEY'
3
4def chatgpt_prompt(new_prompt):
5 response = openai.Completion.create(
6 model="gpt-3.5-turbo",
7 prompt=new_prompt
8 )
9 # TODO safeguard try..catch
10 result = response['choices'][0]['text']
11 return result
Nav skaidrība, ka fakti, kas saskaldīti pa 500 chars atbilst jautājumam un kāpēc tieši 500 chars, varbūt to nevajag darīt? Vai arī katram chunk vajag pretī jautājumu
Šobrīd mēs salīdzinam tikai jautājuma text embedding, iespējams rezultātus varētu uzlabot ņemot vērā arī atbildes text embedding un iespējams, katram jautājumam ar chatgpt ir jāuzģenerē 10 dažādi veidi kā šo jautājumu uzdot un jāpieglabā tele2_data.json
Izmaiņas uzstādīt uz Servera tele2.asya.ai
h: 54.91.118.112 u: ubuntu k: aws-2023.pem
xxxxxxxxxx
11screen -rd tele2
2~/documents/tele2.asya.ai