Projekta objekts:
REST JSON API, kurš ģenerē automātiski aptaujas un ir modulis pie Quizzes dashboard
Valodas: Latviešu, Angļu, Spāņu, Portugāļu
Pilot-klients: FC Rīga
Github: https://github.com/asya-ai/fanapps-quizzes.git
No FanApps puses kontaktpersona par projektu: arturs@fanapps.io, +37128263904 linda@fanapps.io, +37125997012
Ground truth paraugi kādā līmenī nepieciešamas atbildes: http://share.yellowrobot.xyz/quick/2024-1-11-E7B7165D-FFA0-4A45-A8EE-EB7D282C860F.pdf
Figma Dizaini gala sistēmai FanApps pusē: https://www.figma.com/proto/rARhemzAXwxEk8nQNzRdmN/UseAward?page-id=611%3A19510&type=design&node-id=1361-20119&viewport=4970%2C-896%2C0.06&t=Lg5h2E0cKkcNB8qg-1&scaling=scale-down-width&starting-point-node-id=1361%3A20119&mode=design
Plāns:
FastAPI Swagger based API
Deadline: 19. janvāris
PDF Failu pievienošana, lai ģenerētu quizzes (testēšanai FC rīga lapas saglabāt kā PDF)
Deadline: 19. janvāris
Pirmā versija, kas ģenerē quizzes
Deadline: 26. janvāris
URL pievienošana HTML formātā
Deadline: 2. februāris
Sagatavot sistēmu, lai spēj automātiski paņemt jaunākos kluba datus API, lai varētu pa jaunu uzģerēt aptaujas (sākotnēji FC Rīga), katram API būtu jāpielāgo datu sagatavošana. Jānoskaidro precīzi un jāvienojas kā dati nonāks
Deadline:
februāris
API funkcijas (autentifikācija ar API key)
add_client (api_key: str, name: str) -> client_uuid: str
delete_clients (api_key: str, client_uuids: str[])
list_clients(api_key: str) -> Client[]
add_sources_file (api_key: str, client_uuid, file:FileUpload, tags: str[]) -> fact_uuid ^ PDF formātā sākotnēji
add_sources_url (api_key: str, client_uuid, url: str, tags: str[]) -> fact_uuid
list_sources(api_key: str,client_uuid) -> Source[]
update_sources(api_key: str,client_uuid, sources: Source[])
delete_sources(api_key: str,client_uuid, sources_uuids: str[])
add_fact (api_key: str, client_uuid, text:str, tags: str[]) -> fact_uuid ^ Lai no ārējiem API var glabāt jaunāko informāciju
list_facts(api_key: str, client_uuid) -> Fact[]
update_facts(api_key: str, client_uuid, Fact[])
delete_facts(api_key: str, client_uuid, facts_uuids: str[])
generate_questions(api_key: str, client_uuid, language_code:str, tags: str[], callback_url:str) -> batch_uuid
list_questions(api_key: str, client_uuid, batch_uuid) -> Question[] ^ gatavi pēc 5min
update_questions(api_key: str, client_uuid, questions: Question[]) ^ Nepieciešams, lai mēs reģistrētu izmantototos jautājumus un novērstu to atkārtošanos
list_question_batches(api_key: str, client_uuid) -> Batch[]
list_questions(api_key: str, client_uuid, batch_uuid) -> Question[]
delete_questions(api_key: str, client_id, questions_uuids: str[])
Komentāri:
Pēc faktu ielādes ir jāpagaida līdz tie tiek noprocesēti
Pēc jautājumu pievienošanas jāgaida līdz tie tiek noprocesēti
Jāmēģina mazināt jautājumu atkārtošanos, bet tas nav kritski, ja jautājumi sāk atkārtoties, tad jāpievieno vēl faili vai avoti.
visām datu struktūrām jābūt dataclasse_json sadalītām Model View Controller
Valodas nosakaa automātiski sources un facts
Labāk biežāk tabulām likt klāt foreign key, lai varētu ātrāk piekļūt datiem
Tags norāda klienti paši, ja neeksistē, tad tiek pievienots jauns tags
No sākuma by default ir viena organizācija, kas ir FanApps, bet var pievienot vēl organizācijas, kuras var pievienot klientus. Klienti var būt gan organizācijas, gan arī atsevišķi.
Enum nav nepieciešams taisīt iekš BD, pietiek ar python Enum,str
Request/Response un temporary objektiem izmantot dataclass_json
root folderī pievienot requirements.txt
, kuru iegūt ar https://github.com/bndr/pipreqs
vektoriem ir jāizmanto pgvector extension, kurš jau ir uzinstalēts uz DB, kā piemēru ņemt no eldigen
visi embeddings tiek rēķnāti no English valodas, bet tiek saglabāti arī oriģinālā valodā, lai varētu izmantot arī oriģinālo tekstu
DB izmantot PostgreSQL, piekļuve šeit:
xxxxxxxxxx
41h: 54.91.118.112
2d: fanapps
3u: fanapps
4p: Ru5dEWLfWz77sRPTCQdH
Uzstādīt uz servera, AWS-10
xxxxxxxxxx
31h: 54.91.118.112
2u: ubuntu
3key: file
Dummy lapa: https://fanapps.asya.ai
screen -rd fanapps
Uz port 8847
Piemēri ar PostgreSQL: http://share.yellowrobot.xyz/quick/2024-1-11-16AFD7E2-E83C-4A8C-8D5A-9178D4E586DB.html
DB objektiem izmanto SQLAlchemy ORM (drīkst arī SQL rakstīt sarežģītākos gadījumos, bet lielā daļā gadījumu var uzreiz iztikt ar iebūvētjām funkcijām), šeit piemēri: http://share.yellowrobot.xyz/quick/2024-1-11-4480FBDF-544B-4B7E-AE0E-AB581FFEEEB6.html
⚠️⚠️⚠️ Ņemiet par paraugu kodu no Eldigen (šobrīd jau ir PDF scraper un vairākas noderīgas klases), centieties nekopēt lieku kodu, pielāgojiet maksimāli https://github.com/asya-ai/eldigen-web
Piemērs kā jautājumi tiek ģenerēti:
API datu ievākšanai: https://kinexon-sports.com/products/engage/
Micro bets spēles laikā: https://profluence.com/nvenue-receives-investment-from-nba/?utm_source=substack&utm_medium=email