更新时间: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. 工程实现。
    from pangukitsappdev.api.embeddings.factory import Embeddings
    from pangukitsappdev.api.llms.factory import LLMs
    from pangukitsappdev.api.memory.vector.factory import Vectors
    from pangukitsappdev.api.memory.vector.vector_config import VectorStoreConfig, ServerInfoCss
    from pangukitsappdev.skill.doc.ask import DocAskStuffSkill
    query = "杜甫的诗代表了什么主义诗歌艺术的高峰?"
    # 初始化向量库
    vector_store_config = VectorStoreConfig(store_name="css",
                                            index_name="test-vector-css",
                                            embedding=Embeddings.of("css"),
                                            server_info=ServerInfoCss(env_prefix="sdk.memory.css"))
    vector_api = Vectors.of("css", vector_store_config)
    
    # 检索文档
    docs = vector_api.similarity_search(query, 4)
    # 文档问答
    doc_skill = DocAskStuffSkill(LLMs.of("pangu"))
    print(doc_skill.execute({"documents": docs, "question": query}))

相关文档