嵌入是表示任何类型数据的A.I原生方式,使其成为使用各种A.I驱动的工具和算法的理想选择。它们可以表示文本、图像,并且很快还可以表示音频和视频。创建嵌入的方法有很多,无论是在本地使用已安装的库,还是通过调用API。
Chroma为流行的嵌入提供者提供了轻量级包装器,使其在您的应用中易于使用。您可以在创建Chroma集合时设置一个嵌入函数,该函数将自动使用,或者您也可以直接调用它们。
Python | JS | |
---|---|---|
OpenAI | ✅ | ✅ |
Google Generative AI | ✅ | ✅ |
Cohere | ✅ | ✅ |
Hugging Face | ✅ | ➖ |
Instructor | ✅ | ➖ |
Hugging Face Embedding Server | ✅ | ✅ |
Jina AI | ✅ | ✅ |
我们欢迎社区添加新的嵌入函数的拉取请求。
默认: all-MiniLM-L6-v2#
默认情况下,Chroma使用Sentence Transformers的all-MiniLM-L6-v2
模型来创建嵌入。这个嵌入模型可以创建句子和大文档嵌入,可用于各种任务。这个嵌入函数在您的机器上本地运行,可能需要您下载模型文件(这会自动发生)。
嵌入函数可以链接到一个集合,并在您调用add
、update
、upsert
或query
时使用。您也可以直接使用它们,这在调试时很方便。
-> [[0.05035809800028801, 0.0626462921500206, -0.061827320605516434...]]
Sentence Transformers#
Chroma还可以使用任何Sentence Transformers模型来创建嵌入。
您可以传入一个可选的model_name
参数,让您选择使用哪个Sentence Transformers模型。默认情况下,Chroma使用all-MiniLM-L6-v2
。您可以在这里查看所有可用模型的列表。
自定义嵌入函数#
您可以创建自己的嵌入函数以与Chroma一起使用,只需实现EmbeddingFunction
协议即可。
我们欢迎贡献!如果您创建了一个您认为对其他人有用的嵌入函数,请考虑提交拉取请求将其添加到Chroma的embedding_functions
模块中。