You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CrewAI的crewai_tools中配置自定义嵌入模型提供者

配置CrewAI Tools自定义嵌入模型方案

针对你使用公司内部代理模型(gen_ai_hub.proxy.langchain.openai.ChatOpenAI)的场景,无需依赖预设的嵌入提供者(如openai/gpt4all),有两种可行方案:

方案一:直接传入自定义嵌入模型实例(推荐)

CrewAI工具支持直接接收LangChain兼容的BaseEmbeddings子类实例,无需通过配置字典指定provider。步骤如下:

  1. 确认公司内部代理提供了对应的嵌入模型类(通常是OpenAIEmbeddings的代理版本,比如gen_ai_hub.proxy.langchain.openai.OpenAIEmbeddings)
  2. 初始化自定义LLM和嵌入模型实例
  3. 直接将实例传入DirectorySearchTool

示例代码:

from crewai_tools import DirectorySearchTool
from gen_ai_hub.proxy.langchain.openai import ChatOpenAI, OpenAIEmbeddings

# 初始化公司内部的LLM和嵌入模型
custom_llm = ChatOpenAI(proxy_model_name='gpt-4-32k')
custom_embeddings = OpenAIEmbeddings(proxy_model_name='你的内部嵌入模型名称')  # 替换为实际模型名

# 创建DirectorySearchTool并传入自定义模型实例
directory_search_tool = DirectorySearchTool(
    llm=custom_llm,
    embedder=custom_embeddings,
    directory_path='./你的目标目录路径'  # 按需指定要搜索的目录
)

方案二:扩展Embedchain的嵌入提供者(进阶)

如果需要通过config字典方式配置,可扩展Embedchain的嵌入提供者映射:

  1. 定义自定义嵌入类,继承Embedchain的BaseEmbedder:
from embedchain.embedder.base import BaseEmbedder
from gen_ai_hub.proxy.langchain.openai import OpenAIEmbeddings

class CustomInternalEmbedder(BaseEmbedder):
    def __init__(self, config):
        self.embedding_model = OpenAIEmbeddings(proxy_model_name=config['model'])

    def embed(self, texts):
        return self.embedding_model.embed_documents(texts)

    def embed_query(self, query):
        return self.embedding_model.embed_query(query)
  1. 将自定义嵌入类注册到Embedchain的提供者映射:
from embedchain.embedder import BaseEmbedder
BaseEmbedder.add_provider('custom_internal', CustomInternalEmbedder)
  1. 配置DirectorySearchTool时指定自定义provider:
directory_search_tool = DirectorySearchTool(
    config=dict(
        llm=dict(
            provider="custom",  # 或直接传入自定义llm实例
            config=dict(
                llm=custom_llm
            ),
        ),
        embedder=dict(
            provider="custom_internal",
            config=dict(
                model="你的内部嵌入模型名称"
            ),
        )
    ),
    directory_path='./你的目标目录路径'
)

注意:方案二更适合需要统一配置格式的场景,日常使用优先选择方案一,更简洁高效。

内容的提问来源于stack exchange,提问作者Rohan Prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:43:28