“ähnlich”是指德語相似。它由用於使用和開發的多種工具,例如:
ahnlich-db :用於存儲具有相應元數據(鍵值映射)的嵌入式/向量的內存矢量鑰匙值存儲。這是一個功能強大的系統,它使AI/ML工程師可以使用線性(Cosine,Euclidean)或非線性相似性(KDTREE)算法存儲和搜索相似的向量。它還利用元數據值中的搜索能夠使用元數據值過濾條目。一個簡單的例子看起來像 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 :AI代理與ahnlich-db進行通信,接收原始輸入,轉換為嵌入並在DB中存儲。它擴展了功能,然後允許開發人員/工程師使用原始輸入(例如圖像/文本)向同一商店發出查詢。它具有多個可以選擇用於商店索引和查詢的現成模型。 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 : ahnlich-db和ahnlich-ai的Rust Client,並支持連接池。
ahnlich-client-py : ahnlich-db和ahnlich-ai的Python客戶端,並支持連接池。
ahnlich-cli :CLI查詢ahnlich-db和ahnlich-ai

ahnlich-db , ahnlich-ai和ahnlich-cli被包裝並作為多個平台的二進製文件與Docker Images一起發布
可以在沒有AI代理的情況下使用DB,以對生成的向量嵌入進行更細粒度的控制,因為所有客戶都支持兩者
Note :
參數和命令必須以引號傳遞。例如: docker run <image_name> "ahnlich-db run --enable-tracing --port 8000"
CLI包裝到Docker圖像中。
您可以從Github版本下載ai和db的Ahnlich二進製文件。
wget :
wget https://github.com/deven96/ahnlich/releases/download/bin%2Fdb%2F0.0.0/aarch64-darwin-ahnlich-db.tar.gz 提取文件:
tar -xvzf aarch64-darwin-ahnlich-db.tar.gz 運行二進制:
./ahnlich-db 替換aarch64-darwin-ahnlich-db.tar.gz用適合您的架構的文件名替換。對於ai ,下載相應的ai二進製文件,將其提取並使用./ahnlich-ai運行。
您可以為Ahnlich繪製預製的Docker圖像:
Ahnlich AI :
docker pull ghcr.io/deven96/ahnlich-ai:latest Ahnlich DB :
docker pull ghcr.io/deven96/ahnlich-db:latest 以下是一個示例docker-compose.yaml ahnlich-db , ahnlich-ai跟踪:
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以下是一個示例docker-compose.yaml配置,具有持久性:
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
查看貢獻指南