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

模型基础问答能力应用开发(Python SDK)

应用介绍

基础的大语言模型问答场景。涉及模型问答,流式效果等相关特性。

环境准备

  • python3.9 及以上版本。
  • 安装依赖的组件包, pip install pangu_kits_app_dev_py gradio。
  • 盘古大语言模型。

开发实现

  • 创建配置文件llm.properties, 正确配置iam和pangu配置项。信息收集请参考盘古应用开发SDK使用前准备
    #
    # Copyright (c) Huawei Technologies Co., Ltd. 2023-2023. All rights reserved.
    #
    
    ################################ GENERIC CONFIG ###############################
    
    ## If necessary, you can specify the http proxy configuration.
    # sdk.proxy.enabled=true
    # sdk.proxy.url=
    # sdk.proxy.user=
    # sdk.proxy.password=
    
    
    ## Generic IAM info. This config is used when the specified IAM is not configured.
    ## Either user password authentication or AK/SK authentication.
    #
    sdk.iam.url=
    sdk.iam.domain=
    sdk.iam.user=
    sdk.iam.password=
    sdk.iam.project=
    
    
    ## Pangu
    # Examples: https://{endPoint}/v1/{projectId}/deployments/{deploymentId} ;
    #
    sdk.llm.pangu.url=
  • 创建代码文件(chat.py),示例如下:
    import os 
    import sys
    import gradio as gr
    
    from pangukitsappdev.api.llms.llm_config import LLMParamConfig
    from pangukitsappdev.api.llms.factory import LLMs
    
    # 设置SDK使用的配置文件
    os.environ["SDK_CONFIG_PATH"] = "./llm.properties"
    
    # 初始化LLMs
    llm_api = LLMs.of("pangu")
    
    with gr.Blocks() as demo:
        chatbot = gr.Chatbot()
        msg = gr.Textbox()
        clear = gr.Button("清除")
    
        def user(user_message, history):
            return "", history + [[user_message, None]]
    
        def llm(history):
            history[-1][1] = ""
    
            # 流式调用大模型
            tokens = llm_api.ask(history[-1][0], LLMParamConfig(stream=True))
            for token in tokens:
                history[-1][1] += token
                yield history
    
        msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
            llm, chatbot, chatbot
        )
        clear.click(lambda: None, None, chatbot, queue=False)
    
    demo.queue()
    demo.launch()
  • 终端命令行下执行python3 chat.py运行应用,效果如下。

相关文档