基于Azure OpenAI、Langchain构建企业内部知识库解决回答出域的问题


在这里插入图片描述

1. 背景

基于Azure OpenAI、Langchain构建企业内部知识库,当提出的问题,在企业内部知识库中不存在的时候,会回答企业知识库以外的内容,会给提问者造成信息的误解。回答的精准度也不高。

2. 具体实现代码如下

def ask_question(_temperature, _stream, _messages, _tenant_name, _collection_name, _verbose):
    # 获取embedding 模型对象
    embeddings = OpenAIEmbeddings(
        deployment=_deployment,
        model=_model,
        chunk_size=1
    )

    # 获取pgvector 连接字符串
    CONNECTION_STRING = PGVector.connection_string_from_db_params(
        driver=_driver,
        host=_host,
        port=_port,
        database=_database,
        user=_user,
        password=_password,
    )

    # 获取pgvector 模型对象
    store = PGVector.connection_string_from_db_params(
        driver=_driver,
        host=_host,
        port=_port,
        database=_database,
        user=_user,
        password=_password,
    )

    # 获取chat 模型对象
    retriever = store.as_retriever()

    # 构造问答prompt
    prompt_template = """Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer. 

    {context}

    Question: {question}
    Helpful Answer:"""
    prompt = PromptTemplate(
        template=prompt_template, input_variables=["context", "question"]
    )

    llmAzureOpenAI = AzureChatOpenAI(
        openai_api_type=_openai_api_type,
        openai_api_base=_openai_api_base,
        openai_api_version=_openai_api_version,
        deployment_name=_deployment_name,
        model_name=_model_name,
        openai_api_key=_openai_api_key,
        streaming=_stream,
        temperature=_temperature,
        verbose=_verbose
    )
    
    question_generator = LLMChain(llm=llmAzureOpenAI, prompt=CONDENSE_QUESTION_PROMPT)
    
    doc_chain = load_qa_chain(llmAzureOpenAI, chain_type="stuff", prompt=prompt, verbose=_verbose)
    
    chain = ConversationalRetrievalChain(
        retriever=retriever,
        combine_docs_chain=doc_chain,
        question_generator=question_generator,
        return_source_documents=True,
    )
    
    # 提高召回精读,默认0.8
    vectordbkwargs = {"search_distance": 0.9}

    chat_history = []
    result = chain({'question': _messages, 'chat_history': chat_history, "vectordbkwargs": vectordbkwargs})
    chat_history.append((_messages, result['answer']))

    return result['answer']

3. 最后

我司的FinOps产品基于Azure OpenAI、PGVector提供企业私有智能助手解决方案。该解决方案包括私有知识库、私有智能客服、云专家和运维专家等功能,旨在为客户提供更快速、便捷的服务和支持。通过利用人工智能和自然语言处理技术,联蔚的FinOps产品能够帮助企业进行云消费的全生命周期管理,从而极大地节省云支出并提升效率。

如果有云上财务管理、企业私有智能助手的需求,可以关注我们的微信公众号、详情查看联蔚盘云官网

相关链接:

联蔚FinOps平台全新升级:资源优化报告与华为云助您智慧管理多云环境

联蔚盘云成为Gartner《Cool Vendors in Cloud》报告中亚洲唯一云服务商

Azure OpenAI助力联蔚盘云企业智能助手全面上线,引领智能化转型新纪元

联蔚荣获微软Azure OpenAI 合作伙伴 Level 300 认证

阿里云资源优化正式上线!最大程度节约成本,提升业务效能!

FinOps升级!实现财务精准管控,让企业财务更高效!

联蔚FinOps智能助手,为您打造专属的云上财务管理专家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值