更新时间:2024-08-29 GMT+08:00
分享

搜索增强

场景介绍

私有化场景下,大模型需要基于现存的私有数据提供服务。通过外挂知识库(Embedding、向量库)方式提供通用的、标准化的文档问答场景。

工程实现

  1. 准备知识库。
  2. 获取并安装SDK包。
  3. 在配置文件(llm.properties)中配置模型信息。
    # 盘古模型IAM 认证信息,根据实际填写
    sdk.llm.pangu.iam.url=
    sdk.llm.pangu.iam.domain=
    sdk.llm.pangu.iam.user=
    sdk.llm.pangu.iam.password=
    sdk.llm.pangu.project=
    
    ## 盘古模型信息,根据实际情况填写
    sdk.llm.pangu.url=
    
    ## CSS Embedding模型api
    sdk.embedding.css.url=
    sdk.embedding.css.iam.url=
    sdk.embedding.css.iam.domain=
    sdk.embedding.css.iam.user=
    sdk.embedding.css.iam.password=
    sdk.embedding.css.iam.project=
    
    ## CSS 向量库
    sdk.memory.css.url=
    sdk.memory.css.user=
    sdk.memory.css.password=
    
  4. 工程实现。
    import com.huaweicloud.pangu.dev.sdk.skill.DocSkill;
    import com.huaweicloud.pangu.dev.sdk.api.skill.Skills;
    import com.huaweicloud.pangu.dev.sdk.api.memory.vector.Vector;
    import com.huaweicloud.pangu.dev.sdk.api.memory.vector.Vectors;
    import com.huaweicloud.pangu.dev.sdk.api.memory.config.VectorStoreConfig;
    import com.huaweicloud.pangu.dev.sdk.api.embedings.Embeddings;
    
    String query = "杜甫的诗代表了什么主义诗歌艺术的高峰?";
    // 初始化向量库
    Vector cssVector = Vectors.of(Vectors.CSS,
        VectorStoreConfig.builder()
            .embedding(Embeddings.of(Embeddings.CSS))
            .indexName("sdk-test-dataset-webqa-10")
            .build());
    
    // 检索文档;
    docs = cssVector.similaritySearch(query, 4, 105);
    
    // 文档问答
    DocSkill skill = Skills.Document.newDocAskStuffSkill(LLMs.of(LLMs.PANGU));
    String answer = skill.executeWithDocs(docs, query);

相关文档