"ähnlich" significa similar en alemán. Se compone de múltiples herramientas para el uso y el desarrollo, como:
ahnlich-db : almacén de valor de clave vectorial en memoria para almacenar incrustaciones/vectores con metadatos correspondientes (mapas de valor clave). Es un sistema potente que permite a los ingenieros AI/ML almacenar y buscar vectores similares utilizando algoritmos lineales (coseno, euclidiano) o de similitud no lineal (kdtree). También aprovecha la búsqueda dentro de los valores de metadatos para poder filtrar entradas utilizando valores de metadatos. Un ejemplo simple puede verse como 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 de AI para comunicarse con ahnlich-db , recibir entrada sin procesar, transformarse en embedidas y almacenar dentro del DB. Extiende las capacidades al permitir que los desarrolladores/ingenieros emitan consultas a la misma tienda utilizando entrada sin procesar, como imágenes/texto. Cuenta con múltiples modelos estándares que se pueden seleccionar para el índice y consulta de la tienda. 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 : cliente de óxido para ahnlich-db y ahnlich-ai con soporte para la agrupación de conexión.
ahnlich-client-py : Cliente de Python para ahnlich-db y ahnlich-ai con soporte para la agrupación de conexión.
ahnlich-cli : CLI para consultar ahnlich-db y ahnlich-ai

ahnlich-db , ahnlich-ai y ahnlich-cli están empaquetados y lanzados como binarios para múltiples plataformas junto con Docker Images
El DB se puede usar sin el proxy AI para un control de grano más fino de las integridades de vectores generados, ya que todos los clientes admiten ambos
Note :
Los argumentos y los comandos deben aprobarse en comillas. Ej docker run <image_name> "ahnlich-db run --enable-tracing --port 8000"
La CLI viene empaquetada en las imágenes de Docker.
Puede descargar los binarios de Ahnlich para ai y db de los lanzamientos de GitHub.
wget :
wget https://github.com/deven96/ahnlich/releases/download/bin%2Fdb%2F0.0.0/aarch64-darwin-ahnlich-db.tar.gz Extraiga el archivo:
tar -xvzf aarch64-darwin-ahnlich-db.tar.gz Ejecute el binario:
./ahnlich-db Reemplace aarch64-darwin-ahnlich-db.tar.gz con el nombre de archivo apropiado para su arquitectura. Para ai , descargue el binario ai correspondiente, extraiga y ejecútelo usando ./ahnlich-ai .
Puede extraer las imágenes de Docker prebuilt para Ahnlich:
Ahnlich ai :
docker pull ghcr.io/deven96/ahnlich-ai:latest Ahnlich DB :
docker pull ghcr.io/deven96/ahnlich-db:latest A continuación se muestra un ejemplo de configuración docker-compose.yaml para ejecutar tanto ahnlich-db como ahnlich-ai con rastreo:
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 A continuación se muestra un ejemplo de docker-compose.yaml Configuración con persistencia:
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
Ver guía de contribución