2023-07-11 Tele2 Čatbots Betija Task

  1. Izpētīt kodu https://github.com/asya-ai/asya-chatbot-tele2-2023-q3 (invite sent)

  2. Tavas koda izmaiņas taisi jaunā branch “betija”

  3. Sistēma strādā pēc principa “Zero-shot” jeb “Prompt-fine tunning”.

    1. Ar scraper kodu (citā repo) tiek izveidots tele2_data.json

    2. Tad katrs jautājums tiek padots Text Embedding modelim un izveido tele2_embs_en_ai.pkl

    3. Tad, kad uzdod jautājumu, tiek sameklēts pēc cosine distance tuvākais jautājums un teksts tiek pievienots

    image-20230711125949169

  1. 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:

    1. Backendā viss notiek angļu valodā, pats chatgpt tiek izmantots tulkošanai, jo Google translate ir neprecīzāks

    2. 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)

    3. Vārdu skaitam promptā ir limitācija, nedrīkst pārāk garus 1200 vārdi

    4. 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:)

      1. Iepriekšējiem Jautājumiem - atbildēm (ja par garu šos pirmos griež nost). Tiek izmantots summary no atbildēm, lai samazinātu prompt

      2. 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ā

      3. Faktiem no data.json formātā Jautājums - atbilde (num_results=4 šobrīd)

      4. Gala jautājums angliski

      5. Gala prompts angliski “Answer following question in Latvian:”

      6. is_valid_answer pārbauda, ka atbilde ir latviski un par tēmu

 

  1. Atrast un salabot bug, ka šobrīd piemēram nepareizas atsauces dažreiz tiek pievienotas: image-20230711130347442

 

  1. 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

     

  2. Veikt code refactoring un satīrīt:

    1. 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

    2. 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

    3. 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

    4. Š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

 

  1. Izmaiņas uzstādīt uz Servera tele2.asya.ai

h: 54.91.118.112 u: ubuntu k: aws-2023.pem