跳到主要内容

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输入参数。包含要写入向量存储记录的 Data 或 DataFrame 输入。仅在写入时相关。
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输入参数。要执行的搜索类型,可选为 Similarity 或 MMR。仅在读取时相关。
Number of Results (number_of_results)Integer输入参数。返回的搜索结果数量。默认:10。仅在读取时相关。
Limit (limit)Integer输入参数。当 Allow Duplicates 为 false 时,用于限制比较的记录数。这有助于提升大 collection 写入时的性能,但也可能导致部分重复记录未被识别。仅在写入时相关。

另请参阅​