Chroma 教程

reset:清空

🎉摘要:Chroma客户端reset()可删除所有集合和数据,但需服务端开启allow_reset,默认关闭。本文介绍通过config.yaml配置文件或CHROMA_ALLOW_RESET=true环境变量开启reset的方法,并提醒生产环境谨慎开启,同时说明仅设置Settings.allow_reset仍会报错的注意事项。

这是一个非常危险的操作,使用客户端的 reset() 函数实现:

client.reset() # 删掉所有集合和数据

这个操作要求服务端开了 allow_reset,默认关闭。如果没有开启 allow_reset,调用 reset() 会得到如下错误:

ChromaError: Resetting is not allowed by this configuration...

打开 reset 的方式:

# 方式一:配置文件(推荐)
echo "allow_reset: true" > config.yaml
docker run --name chroma159 -v ./config.yaml:/config.yaml -v ./chroma-data:/chroma -p 8000:8000 chromadb/chroma:1.5.9

# 方式二:环境变量
CHROMA_ALLOW_RESET=true

注意,生产环境别开,很危险。

再次运行下面代码,就可以正常清除了:

import chromadb

# 上文用到的定义,直接搬过来,保证这段能独立跑
client = chromadb.HttpClient(
    host="localhost", port=8000,
    tenant="tenant_a", database="prod",
)

print(client.reset()) # True

如果服务器没有开启 reset 功能,直接在 Settings 对象中将 reset 设置为 True,依然要报错:

import chromadb
from chromadb import Settings

settings = Settings(
    allow_reset = True
)

# 上文用到的定义,直接搬过来,保证这段能独立跑
client = chromadb.HttpClient(
    host="localhost", port=8000,
    tenant="tenant_a", database="prod",
    settings=settings
)

print(client.reset())
# chromadb.errors.ChromaError: Reset is disabled by config

  

说说我的看法
全部评论()
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号