向量模型

在 AgentRun 中,向量模型(Embedding Model) 用于将文本内容转换为高维向量,是实现语义相似度计算、向量检索、知识库召回等核心能力的基础组件。

功能介绍

通过向量模型管理,可以:

  • 添加并配置向量模型(如通义千问的 text-embedding-v3);

  • 接入自定义服务,支持符合 OpenAI 规范的第三方向量模型 API;

  • 统一管理多个向量模型,按场景灵活切换;

  • 在 Agent 的知识库、检索增强(RAG)等模块中直接引用。

操作步骤

步骤 1:进入向量模型管理页面

  1. 进入AgentRun控制台,首次使用需要进行SLR授权,在弹出的提示框中点击确认即可;

  2. 在顶部菜单栏点击模型管理,然后选择向量模型

  3. 页面展示所有已创建的向量模型,并提供“添加模型”入口。

步骤 2:添加模型

  1. 点击添加模型

  2. 在弹出的对话框中,默认选中API 模型

步骤 3:填写基本信息

  • 名称(必填):输入易于识别的名称,如 kb-embedding-cn。建议包含服务商或模型版本信息。

  • 描述(可选):简要说明用途,例如“中文知识库语义检索”。

步骤 4:选择服务提供商

服务提供商下拉框中按需选择:

通义千问:阿里云官方大模型服务,提供多版本文本嵌入模型(如 text-embedding-v3);

自定义服务:接入任意符合 OpenAI 规范的第三方向量模型 API,适合私有化部署或定制化场景。

步骤 5:模型配置

通义千问

  1. API端点配置:

  2. 选择通义千问后,系统自动填充 API 端点,无需修改

    https://dashscope.aliyuncs.com/compatible-mode/v1
  3. 配置具体模型区域,勾选需要的模型版本,可多选,但实际调用时会根据配置使用其中一个:

    • text-embedding-v1

    • text-embedding-v2

    • text-embedding-v3

    • text-embedding-v4

自定义服务

  1. VPC 配置:如果模型服务部署在阿里云 VPC 内网,为了保证从 AgentRun 到目标服务网络连通,需要选择与模型服务一致的VPC/子网/安全组,对于部署在公网的服务,此配置可以留空;

  2. API端点:在API 端点输入框中填写服务地址,要求该地址下提供兼容 OpenAI 的 /v1/embeddings 接口。

  3. 输入模型名称:如 my-embedding-v1(在 Agent 中引用时使用)

步骤6:访问凭证(按需配置)

是否配置凭证,取决于你的服务端是否要求认证,判断标准:如果调用接口时需要 Authorization: Bearer xxx 或类似认证字段,则必须配置凭证;否则可以选择“不使用凭证”。

点击出站:访问第三方凭证打开配置面板,可选择以下方式之一:

  • 选择使用已有凭证(推荐):适合多服务共享同一凭证、集中管理密钥的场景。从下拉框中选择在凭证管理中创建好的 API Key,如果没有可以选择的凭证,可以参考凭证管理添加;

  • 选择API 密钥:密钥仅用于当前模型,不会保存到全局凭证管理。在访问密钥中直接输入第三方服务的 API Key;

  • 不使用凭证:适用于允许匿名访问的测试或内部服务。

步骤7:创建并验证模型

  1. 检查配置无误后,点击对话框右下角创建模型

  2. 创建成功后,会跳转到该向量模型管理页,可以对模型进行查看和管理,在目标模型的卡片中,点击详情,可以查看模型名称、创建时间支持的模型以及服务配置等信息;

  3. 模型测试:可以查看详情页调用示例,使用下列方式进行测试:

    API
    curl https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -d '{
        "input": "The food was delicious and the waiter...",
        "model": "text-embedding-ada-002",
        "encoding_format": "float"
      }'
    Python SDK
    from agentrun import ModelClient
    
    ms = ModelClient().get(name="model-9FIYil")
    
    result = ms.completions(
        messages=[{"role": "user", "content": "写一首赞美 AI 的诗歌"}],
        stream=True,
    )
    
    for chunk in result:
        print(chunk.choices[0].delta.content, end="", flush=True)
        
    Node.js SDK
    import OpenAI from "openai";
    
    const openai = new OpenAI();
    
    async function main() {
      const embedding = await openai.embeddings.create({
        model: "text-embedding-ada-002",
        input: "The quick brown fox jumped over the lazy dog",
        encoding_format: "float",
      });
    
      console.log(embedding);
    }
    
    main();