更新时间:2024-10-16 GMT+08:00
基础问答
应用介绍
基础的大语言模型问答场景。涉及模型问答,流式效果等相关特性。
环境准备
- python3.9 及以上版本。
- 安装依赖的组件包, pip install pangu_kits_app_dev_py gradio。
- 盘古大语言模型。
开发实现
- 创建配置文件llm.properties, 正确配置iam和pangu配置项。信息收集请参考准备工作。
# # 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运行应用,效果如下。
父主题: 应用实践