Inspiration
Se spune că inspirația este idea care apare atunci când un om este vizitat de un Djin. În cazul nostru povestea nu este atât de mistică. Întamplarea face ca pe chat-ul de Chimpex sa apara un mesaj nou de la CFO-ul Chimpex. Mesaj care contine o provocare prezentata cu foarte mult entuziasm: "Dacă tot stăm pe un munte de informații in CTM, de ce să nu le și folosim print-un chatbot?". Așa am ajuns noi aici și cu acest proiect.
What it does
Pe scurt se folosește de doua servicii din domeniul AI. Primul are unelte (functions) și știe cum să decidă ce unealtă să folosească și când printr-un proces de gândire bazat pe principiul: Input -> Gândire -> Acțiune -> Input până când ajunge la un răspuns final. Cel de-al doilea îi faciliteaza procesul de gândire primului serviciu. Acesta este pur și simplu un serviciu de LLM.
How we built it
Am construit soluția în Python, folosind LangChain pentru acțiuni și OpenAI pentru gândire. Pentru interfață am folosit o librarie și serviciu de hosting special pentru POC-uri.
Challenges we ran into
Ohoo și câte provocări. Putem spune că au fost oportunități de învățare la fiecare colț. Primul blocaj a fost limitarea GPT-3.5 a doar 8k Tokens per mesaj (limitare care doare foarte tare și care din păcate am rămas cu ea). În încercarea de a trece acest obstacol am luat in considerare să folosim Gemini Pro. Toate bune și frumoase, avem serviciul, avem API KEY-ul, dar când să ruleze iaca, acesta nu e încă disponibil de folosit ca API în Romania.
BUUUN!
Hai să trecem la urmatoarea opțiune, folosim VertexAI. Toate bune și frumoase, avem serviciul, avem service account-ul, dar când să ruleze iaca, avem o eroare a unui request grpc din librărie și insuficient timp pentru a investiga.
BUUN BUUN!
Hai să trecem la următoarea opțiune, folosim AzureCopilot din PowerBI. Toate bune și frumoase, avem workspace-ul, avem Q&A-ul, avem baza de date și este publicată. Aici nu este un "dar... iaca", funcționeaza și este disponibila intern problema aici apare din natura bazei de date. Copilot nu le știe prea bine pe Romană iar tabelele moștenesc denumiri ceva mai dubioase și ambigue din aplicația legacy. Deci nici input-ul nu il putem da prea relevant și nici analiza nu e prea eficientă.
Așadar până la urma am rămas cu biata opțiune de GPT-3.5. Dar chiar și așa, având în vedere că deja e destul de târziu și mai important a fost procesul de research tehnologic și analiză de cost și avantaje/dezavantaje soluții, nu am pivotat de la Streamlit. Serviciul care face self hosting, iar din acest hosting aplicația noastră nu se poate conecta la MySQL-ul de pe mediul de DEV din considerente de securitate.
Și-am încălecat pe-o șa și v-am spus povestea noastră.
Accomplishments that we're proud of
Am reușit mai mult decât să validăm idea și să dobândim destul de multe cunoștiințe și familiaritate cu tehnologiile de AI.
What we learned
Iaca am învățat următoarele:
- Avem cunoștințe practice ale principiului de "function calling" intr-un model de AI
- Avem o plaja de opțiuni pentru clienții noștri care și-ar dori o astfel de soluție: opțiune full Open Source prin LangChain și Gemma; opțiune hibridă prin LangChain și GPT/Gemini; opțiune cloud prin Gemini function calling (aici încă netestată dar pentru testare avem deja familiaritatea subiectului și a metodei de testare); opțiune cloud prin Copilot cu soluția de PowerBI Premium
- Avem o analiză de cost pentru GPT-4 vs Gemini (GPT-4 $1320/lună pentru ~25 intrebări pe zi VS Gemini Pro 1 $30/lună pentru ~25 întrebări pe zi)
Built With
- chatgpt3.5
- chatgpt4
- copilot
- gemini-pro
- langchain
- powerbi
- python
- streamlit
Log in or sign up for Devpost to join the conversation.