跳到主要内容

Chroma 组件

业务组件 用于按提供商归类那些将第三方服务接入 SkillFlaw 的组件。

本页介绍 Chroma 业务组件中的可用组件。

Chroma DB

你可以使用 Chroma DB 组件通过 Chroma 向量存储实例对 Chroma 数据库进行读写。 它支持远程或内存实例,并且可选择启用或不启用持久化。

About vector store instances

由于 SkillFlaw 基于 LangChain,向量存储组件会使用一个 LangChain 向量存储 实例来驱动底层的读写功能。 这些实例具有提供商特定性,并根据组件参数进行配置,例如连接字符串、索引名称和 schema。

在组件代码中,这通常会被实例化为 vector_store,但某些向量存储组件会使用其他名称,例如提供商名称。

有些 LangChain 类不会将所有可选项都暴露为组件参数。 根据提供商不同,这些选项可能使用默认值,或者在 SkillFlaw 支持的情况下通过环境变量进行修改。 有关具体选项,请参阅 LangChain API 参考和向量存储提供商文档。

写入时,该组件可以在指定位置创建新的数据库或 collection。

提示

如果你在测试向量搜索流程且不需要保留数据库,使用临时(非持久化)的本地 Chroma 向量存储会很方便。

如果你使用向量存储组件查询向量数据库,它会生成搜索结果,你可以将这些结果作为 Data 对象列表或表格形式的 DataFrame 传递给流程中的下游组件。 如果同时支持这两种类型,你可以在可视化编辑器中、向量存储组件输出端口附近设置输出格式。

在流程中使用 Chroma DB 组件

下面的示例流程使用一个 Chroma DB 组件同时完成读取和写入:

ChromaDB receiving split text

  • 写入时,它会将来自 URL 组件Data 拆分成多个 chunk,使用连接的 Embedding Model 组件计算 embeddings,然后把这些 chunks 和 embeddings 加载到 Chroma 向量存储中。 要触发写入,请在 Chroma DB 组件上点击 Run component

  • 读取时,它会使用聊天输入对向量存储执行相似度搜索,然后将搜索结果输出到聊天中。 要触发读取,请打开 Playground 并输入一条聊天消息。

流程运行一次后,你可以在每个组件上点击 Inspect Output,了解数据在组件之间传递时是如何被转换的。

Chroma DB 参数

你可以查看向量存储组件的参数,以了解它接受哪些输入、支持哪些能力以及如何进行配置。

有些参数在可视化编辑器中默认处于隐藏状态。 你可以通过组件标题栏菜单中的 控件 来修改全部参数。

有些参数是条件参数,只有在你设置了其他参数,或为其他参数选择了特定选项之后才会显示。 在满足所需依赖之前,条件参数可能不会出现在 控件 面板中。

关于可接受的取值和功能说明,请参阅提供商文档,或查看组件代码

NameTypeDescription
Collection Name (collection_name)String输入参数。你的 Chroma 向量存储 collection 名称。默认:skillflaw
Persist Directory (persist_directory)String输入参数。若要持久化 Chroma 数据库,请输入一个用于存储 chroma.sqlite3 文件的相对或绝对目录路径。留空则使用临时数据库。读取或写入已有持久化数据库时,请指定该持久化目录路径。
Ingest Data (ingest_data)Data or DataFrame输入参数。包含要写入向量存储记录的 DataDataFrame 输入。仅在写入时相关。
Search Query (search_query)String输入参数。用于向量搜索的查询内容。仅在读取时相关。
Cache Vector Store (cache_vector_store)Boolean输入参数。若为 true,组件会将向量存储缓存在内存中以加快读取速度。默认:启用(true)。
Embedding (embedding)Embeddings输入参数。向量存储使用的 embedding function。默认情况下,Chroma DB 使用其内置 embedding 模型;你也可以连接 Embedding Model 组件,改用其他提供商或模型。
CORS Allow Origins (chroma_server_cors_allow_origins)String输入参数。Chroma server 允许的 CORS 来源。
Chroma Server Host (chroma_server_host)String输入参数。Chroma server 的主机地址。
Chroma Server HTTP Port (chroma_server_http_port)Integer输入参数。Chroma server 的 HTTP 端口。
Chroma Server gRPC Port (chroma_server_grpc_port)Integer输入参数。Chroma server 的 gRPC 端口。
Chroma Server SSL Enabled (chroma_server_ssl_enabled)Boolean输入参数。是否为 Chroma server 启用 SSL。
Allow Duplicates (allow_duplicates)Boolean输入参数。若为 true(默认),写入时不会检查 collection 中是否已有重复内容,因此允许存储同一内容的多个副本。若为 false,写入时不会添加与 collection 中已有文档匹配的文档。设置为 false 时,可通过搜索整个 collection 来严格去重,也可以仅搜索由 limit 指定数量的记录。仅在写入时相关。
Search Type (search_type)String输入参数。要执行的搜索类型,可选为 SimilarityMMR。仅在读取时相关。
Number of Results (number_of_results)Integer输入参数。返回的搜索结果数量。默认:10。仅在读取时相关。
Limit (limit)Integer输入参数。当 Allow Duplicatesfalse 时,用于限制比较的记录数。这有助于提升大 collection 写入时的性能,但也可能导致部分重复记录未被识别。仅在写入时相关。

另请参阅