“ä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
查看贡献指南