"ähnlich" signifie similaire en allemand. Il comprend plusieurs outils d'utilisation et de développement tels que:
ahnlich-db : Valeur de clés vectorielle en mémoire pour le stockage des intégres / vecteurs avec des métadonnées correspondantes (cartes de valeur clé). Il s'agit d'un système puissant qui permet aux ingénieurs AI / ML de stocker et de rechercher des vecteurs similaires en utilisant des algorithmes linéaires (cosinus, euclidien) ou non linéaires (KDTREE). Il exploite également la recherche dans les valeurs de métadonnées pour pouvoir filtrer les entrées à l'aide de valeurs de métadonnées. Un exemple simple peut ressembler à GETSIMN 2 WITH [0.2, 0.1] USING cosinesimilarity IN my_store WHERE (page != hidden)
// example query
get_sim_n(
store="my_store",
search_input=[0.2, 0.1],
closest_n=2,
algorithm=CosineSimilarity,
condition=Predicate::NotEquals{
key="page",
value="hidden",
},
)
ahnlich-ai : proxy AI pour communiquer avec ahnlich-db , recevoir une entrée brute, se transformer en intégres et stocker dans la base de données. Il étend les capacités en permettant ensuite aux développeurs / ingénieurs d'émettre des requêtes au même magasin en utilisant une entrée brute telle que des images / texte. Il dispose de plusieurs modèles standard qui peuvent être sélectionnés pour l'index de magasin et la requête. CREATESTORE my_store QUERYMODEL all-minilm-l6-v2 INDEXMODEL all-minilm-l6-v2
// example query
create_store(
store="my_store",
index_model="all-minilm-l6-v2",
query_model="all-minilm-l6-v2",
)
ahnlich-client-rs : Rust Client pour ahnlich-db et ahnlich-ai avec support pour la mise en commun des connexions.
ahnlich-client-py : Client Python pour ahnlich-db et ahnlich-ai avec support pour la mise en commun de la connexion.
ahnlich-cli : CLI pour interroger ahnlich-db et ahnlich-ai

ahnlich-db , ahnlich-ai et ahnlich-cli sont emballés et publiés sous forme de binaires pour plusieurs plates-formes aux côtés d'images Docker
La DB peut être utilisée sans le proxy AI pour un contrôle à grain plus fin des intégres de vecteur générés car tous les clients prennent en charge les deux
Note :
Les arguments et les commandes doivent être passés en citations. EG: docker run <image_name> "ahnlich-db run --enable-tracing --port 8000"
La CLI est emballée dans les images Docker.
Vous pouvez télécharger les binaires Ahnlich pour ai et db à partir des sorties GitHub.
wget :
wget https://github.com/deven96/ahnlich/releases/download/bin%2Fdb%2F0.0.0/aarch64-darwin-ahnlich-db.tar.gz Extraire le fichier:
tar -xvzf aarch64-darwin-ahnlich-db.tar.gz Exécutez le binaire:
./ahnlich-db Remplacez aarch64-darwin-ahnlich-db.tar.gz par le nom de fichier approprié pour votre architecture. Pour ai , téléchargez l' ai binaire correspondant, extraire et exécutez-le en utilisant ./ahnlich-ai .
Vous pouvez tirer les images Docker prédéfinies pour Ahnlich:
Ahnlich ai :
docker pull ghcr.io/deven96/ahnlich-ai:latest Ahnlich DB :
docker pull ghcr.io/deven96/ahnlich-db:latest Vous trouverez ci-dessous un exemple de configuration docker-compose.yaml pour exécuter ahnlich-db et ahnlich-ai avec traçage:
services :
ahnlich_db :
image : ghcr.io/deven96/ahnlich-db:latest
command : >
"ahnlich-db run --host 0.0.0.0
--enable-tracing
--otel-endpoint http://jaeger:4317"
ports :
- " 1369:1369 "
ahnlich_ai :
image : ghcr.io/deven96/ahnlich-ai:latest
command : >
"ahnlich-ai run --db-host ahnlich_db --host 0.0.0.0
--supported-models all-minilm-l6-v2,resnet-50
--enable-tracing
--otel-endpoint http://jaeger:4317"
ports :
- " 1370:1370 "
# optional jaeger service whenever --enable-tracing and
# --otel-endpoint is used
jaeger :
image : jaegertracing/all-in-one:${JAEGER_VERSION:-latest}
ports :
- " 16686:16686 "
- " 1888:1888 " # pprof extension
- " 8888:8888 " # Prometheus metrics exposed by the collector
- " 8889:8889 " # Prometheus exporter metrics
- " 4317:4317 " # otlp grpc
- " 4318:4318 " # otlp http Vous trouverez ci-dessous un exemple de configuration docker-compose.yaml avec persistance:
services :
ahnlich_db :
image : ghcr.io/deven96/ahnlich-db:latest
command : >
"ahnlich-db run --host 0.0.0.0
--enable-persistence --persist-location /root/.ahnlich/data/db.dat
--persistence-interval 300"
ports :
- " 1369:1369 "
volumes :
- " ./data/:/root/.ahnlich/data " # Persistence Location
ahnlich_ai :
image : ghcr.io/deven96/ahnlich-ai:latest
command : >
"ahnlich-ai run --db-host ahnlich_db --host 0.0.0.0
--supported-models all-minilm-l6-v2,resnet-50
--enable-persistence --persist-location /root/.ahnlich/data/ai.dat
--persistence-interval 300"
ports :
- " 1370:1370 "
volumes :
- " ./ahnlich_ai_model_cache:/root/.ahnlich/models " # Model cache storage
- " ./data/:/root/.ahnlich/data " # Persistence Location
Voir le guide de contribution