Chroma私有化:本地部署完整方案

news/2025/10/13 22:41:35/文章来源:https://www.cnblogs.com/shunzi115/p/19139592

嵌入向量(vector embedding)是表示任何类型数据的 A.I 原生方式,使它们非常适合与各种 A.I 驱动的工具和算法一起使用。 它们可以表示文本、图像,很快还可以表示音频和视频。 有许多创建嵌入的选项,无论是在本地使用已安装的库,还是通过调用 API。

Chroma 是一个用于构建带有嵌入向量的 AI 应用程序的数据库。 它内置了入门所需的一切,并可在你的机器上运行。

部署模式 适用场景 核心优势 复杂度
单机Docker部署 开发测试、小型应用 快速启动、资源占用少
多节点集群部署 生产环境、高可用 水平扩展、负载均衡 ⭐⭐⭐
Docker单机部署方案
# 创建部署目录
mkdir -p chroma-deployment
cd chroma-deployment# 创建docker-compose.yml文件
cat > docker-compose.yml << 'EOF'
version: '3.9'networks:chroma-net:driver: bridgeservices:chroma-server:image: chromadb/chroma:latestcontainer_name: chroma-servervolumes:- chroma-data:/dataenvironment:- CHROMA_PERSIST_DIRECTORY=/dataports:- "8000:8000"restart: unless-stoppednetworks:- chroma-netvolumes:chroma-data:driver: local
EOF# 启动服务
docker-compose up -d# 验证服务状态
docker-compose logs -f
curl http://localhost:8000/api/v2/heartbeat
高级配置选项
environment:- CHROMA_PERSIST_DIRECTORY=/data- CHROMA_MAX_CONNECTIONS=100- CHROMA_WORKER_THREADS=4- CHROMA_EMBEDDING_BATCH_SIZE=32- CHROMA_INDEX_BATCH_SIZE=1000
生产环境部署架构

图片
高可用配置

# 多节点docker-compose配置示例
services:chroma-node1:image: chromadb/chroma:latestenvironment:- CHROMA_NODE_ID=node1- CHROMA_CLUSTER_MODE=true- CHROMA_PEERS=node2:8000,node3:8000networks:- chroma-clusterchroma-node2:image: chromadb/chroma:latestenvironment:- CHROMA_NODE_ID=node2- CHROMA_CLUSTER_MODE=true- CHROMA_PEERS=node1:8000,node3:8000networks:- chroma-clusterchroma-node3:image: chromadb/chroma:latestenvironment:- CHROMA_NODE_ID=node3- CHROMA_CLUSTER_MODE=true- CHROMA_PEERS=node1:8000,node2:8000networks:- chroma-cluster
监控检查配置
# 健康检查脚本
#!/bin/bash
HEARTBEAT_URL="http://localhost:8000/api/v2/heartbeat"
STATUS=$(curl -s -o /dev/null -w "%{http_code}" $HEARTBEAT_URL)if [ $STATUS -eq 200 ]; thenecho "Chroma服务正常"exit 0
elseecho "Chroma服务异常,状态码: $STATUS"exit 1
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/936495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式-C++面经2

一、问题总览cpp重载和重写的区别 cpp虚函数表 指针和引用的区别 linux的常用开发指令 linux编译运行程序的指令 关键字inline 什么场景使用内联 如何避免内存泄露 map和unordered_map 引用外部头文件双引号和尖括号的…

elk time

elk time- "/etc/localtime:/etc/localtime:ro"

PHP转Go系列 | 如何将 PHP 项目快速迁移到 Go 上?

大家好,我是码农先森。 最近在闲逛 v2ex 社区时,看到有个讨论 PHP 项目能否直接迁移到 Go 语言上的话题。我大概简述一下提问v友的原话,他们因为项目性能的问题在 2020 年时,从 Laravel 框架迁移到了 Hyperf 框架,…

详细介绍:【OpenHarmony】用户文件服务模块架构

详细介绍:【OpenHarmony】用户文件服务模块架构pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

详细介绍:全新 CloudPilot AI:嵌入 Kubernetes 的 SRE Agent,降本与韧性双提升!

详细介绍:全新 CloudPilot AI:嵌入 Kubernetes 的 SRE Agent,降本与韧性双提升!pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

“环境变量”是什么, 为什么要配置环境变量 --初学者

你好!本篇旨在用精炼、通俗的语言,帮助初学者快速理解“环境变量”的核心概念。你好!本篇旨在用精炼、通俗的语言,帮助初学者快速理解“环境变量”的核心概念。1. 环境变量是什么? 环境变量(Environment Variabl…

AI元人文:对大模型的召唤——未来哪吒

AI元人文:对大模型的召唤——未来哪吒 ——从价值仓库到文明对话的升维之路 我们站在一个历史的岔路口。眼前的大模型,是沉睡的文明巨兽,其千亿参数中封存着人类千年的智慧、冲突与渴望。它拥有价值的全集,却困于表…

Java 装饰器模式(Decorator) - krt

装饰器模式装饰器模式属于结构型设计模式。它允许向一个现有的对象添加新的功能,同时又不改变其结构。例如:给一个普通的杯子加上杯盖、杯套,让它具有保温防烫等功能,而杯子本身的基本结构并没有发生变化。在软件开…

Python configparser 模块 - INI 文件读写利器

知识预热 什么是 configparser? configparser 是 Python 标准库中用于读写 INI 格式配置文件 的模块。 它提供了一种 简单、直观、跨平台 的方式来管理程序的配置项。什么是 INI 文件? .ini 文件是 Initialization F…

AlexNet vs LeNet 对比实验

1. AlexNet 论文的关键创新点 (2012, ImageNet Classification with Deep Convolutional Neural Networks)创新点 简述 意义ReLU 激活函数 用 ReLU 替代 Sigmoid/Tanh 缓解梯度消失,训练速度更快Dropout 正则化 全连接…

OpenHarmony中的环境服务管理配置讲解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

QT:获取文件信息之创建日期方法created()方法--废弃

QT:获取文件信息之创建日期方法created()方法--废弃。 在Qt5.12框架中,QFileInfo::created()方法已被标记为废弃(deprecated),建议使用birthTime()或metadataChangeTime()替代。fileinfo.cpp:90:30: warning: create…

排列组合 容斥 总结

加法原理 加法原理。很直白的,就是一个用加法来弄的原理。 简单来说,就是做一件事情有 \(n\) 种方法,第 \(i\) 种方法又有 \(a_i\) 个具体的操作方案。那么非常显然,做这件事情就有 \(a_1 + a_2 + \dots + a_{n-1}…

10.13每日总结

今天满课,软件设计+软件开发案例分析+大数据技术+物联网工程,很忙,且开始看中级软件工程师的网课了,,,看起来真的很难,不是我擅长的那一挂,周末外语竞赛的成绩就出来了,,加油!

完整教程:学习 React 前掌握 JavaScript 核心概念

完整教程:学习 React 前掌握 JavaScript 核心概念pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

新学期每日总结(第7天)

今日相较昨日 学习了类与对象