Înapoi la lista de proiecte

AI aplicat

Repository GitHub

Motor multimodal de căutare semantică și RAG

Căutare locală în imagini și videoclipuri folosind limbaj obișnuit, cu rezultate de regăsire măsurabile.

Context: Sistem multimodal de căutare cu AI

Perioadă: 2025-10 - Prezent

Rezumat

Sistemul FastAPI, React/Vite și CLI folosește embeddings CLIP, căutare nearest-neighbour cu FAISS, reranking pe baza descrierilor și explicații locale generate prin Ollama.

De la o interogare în limbaj natural la dovezi vizuale ordonate

Interogare

Utilizatorul descrie imaginea sau videoclipul căutat

Codare CLIP

Textul și conținutul media intră în același spațiu de embeddings

Căutare FAISS

Indexul nearest-neighbour găsește candidații relevanți

Reranking

Descrierile și semnalele de regăsire ajustează ordinea

Rezultate

Interfața afișează conținutul ordonat și explicațiile

Ce gestionează sistemul

Transformă interogări în limbaj natural în rezultate ordonate de imagini și videoclipuri.

Folosește embeddings CLIP pentru text, imagini și cadre video împreună cu FAISS.

Include căutare de imagini, videoclipuri, text-către-video, căutare la nivel de cadru și regăsire inversă video-către-text.

Folosește Ollama pentru explicații generate local.

Benchmark de regăsire măsurat

Evaluare pe descrieri COCO pentru 200 de interogări, cu rulări separate pe indecși de 1.000 și 5.000 de imagini. Latența aparține rulării evaluate cu 1.000 de imagini.

Recall@10

0,88

Index cu 1.000 de imagini

Recall@10

0,57

Index cu 5.000 de imagini

Recall@1 / @5 / @10

0,46 / 0,755 / 0,88

200 de interogări COCO-caption

Latență medie per interogare

6,92ms

Index cu 1.000 de imagini

Tehnologie

Stack

PythonFastAPIReactViteFAISSHNSWCLIPPyTorchOpenCVOllamaRAGVector embeddings

Domenii

AI aplicatSisteme de regăsireRAGVedere computerizatăCăutare vectorialăAI full-stack

Benchmark de regăsire

Rezultate de benchmark din repository

Cum se schimbă regăsirea când indexul crește

Comută între dimensiunile evaluate pentru a compara Recall@K și latența controlată a interogării. Latența aplicației de mai jos provine dintr-un jurnal separat și include o parte mai mare din fluxul complet.

Comparație Recall

200 interogări de evaluare
Recall@146%
Recall@575,5%
Recall@1088%

Recall@10: 88% dintre potrivirile relevante recuperate

Contextul de rulare al aplicației

209 evenimente înregistrate
Media căutării înregistrate
68,07 ms
Media explicației produse de LLM-ul local
13,74 s

Interogarea evaluată de 6,9 ms și căutarea înregistrată de 68,07 ms măsoară trasee diferite, astfel încât fiecare își păstrează propria etichetă și propriul context temporal.

Inspectează fișierele JSON de benchmark pe GitHub

Concluzii

  • O interogare obișnuită poate returna dovezi vizuale ordonate direct din conceptele pe care utilizatorul și le amintește.
  • Benchmarkurile fac vizibile calitatea regăsirii și latența, astfel încât schimbările pot fi comparate obiectiv.
  • Același flux este disponibil în browser și prin CLI, ceea ce face experimentele mai ușor de repetat și inspectat.

Vrei să inspectezi implementarea?

Repository-ul conține codul sursă, instrucțiunile de configurare și istoricul dezvoltării.

Deschide repository-ul