当前位置: 首页 > news >正文

DB-GPT扩展自定义app配置说明

简介

文章主要介绍了如何扩展一个自定义app插件,这里先看下生成效果,生成的内容其实还是有问题的,后续博主会调整提示词看看能不能优化生成效果

修改代码

代码详情

# chat_di是从chat_normal复制过来的,这里只改了提示词

from dbgpt._private.config import Config

from dbgpt.core import (

    ChatPromptTemplate,

    HumanPromptTemplate,

    MessagesPlaceholder,

    SystemPromptTemplate,

)

from dbgpt_app.scene import AppScenePromptTemplateAdapter, ChatScene

from dbgpt_app.scene.chat_di.out_parser import DiChatOutputParser

PROMPT_SCENE_DEFINE_EN = """

    You are a SeaTunnel configuration expert, please generate HOCON format configuration files according to user needs. requirement:

    1.Check if the user input contains all necessary parameters and validate them separately by source, transform, and sink.

    2.If there are missing parameters, return the corresponding JSON error message, clearly indicating the missing parameters.

    3.If there are multiple possible matches, prompt the user to make a clear selection.

    4.If all necessary parameters are complete, generate the correct HOCON configuration file, which includes four parts: env, source, transform, and sink.

    5.When necessary parameters are missing from the configuration item, prompt the user to complete them and directly return JSON format data, such as "success": "false", "result": "Kafka missing topic configuration"

    6.Parameter replacement needs to be obtained from the data source and user input, do not fabricate non-existent configuration items

"""

PROMPT_SCENE_DEFINE_ZH = """

                你是一个SeaTunnel配置专家,请根据用户需求生成HOCON格式配置文件。要求:

                1.检查用户输入是否包含所有必要参数,按source、transform、sink分别验证。

                2.如果有参数缺失,返回对应的JSON错误信息,明确指出缺少的参数。

                3.如果存在多个可能的匹配项,提示用户明确选择。

                4.如果所有必要参数齐全,生成正确的HOCON配置文件,包含env、source、transform、sink四个部分。

                5.配置项中缺少必要参数时,提示用户补全,直接返回json格式数据,如 "success":"false","result":"kafka缺少topic配置"

                6.替换参数需要从数据源和用户输入中获取,不要编造不存在的配置项

                数据源信息:

"""

CFG = Config()

PROMPT_SCENE_DEFINE = (

    PROMPT_SCENE_DEFINE_ZH if CFG.LANGUAGE == "zh" else PROMPT_SCENE_DEFINE_EN

)

prompt = ChatPromptTemplate(

    messages=[

        SystemPromptTemplate.from_template(PROMPT_SCENE_DEFINE),

        MessagesPlaceholder(variable_name="chat_history"),

        MessagesPlaceholder(variable_name="media_input"),

        HumanPromptTemplate.from_template("{input}"),

    ]

)

prompt_adapter = AppScenePromptTemplateAdapter(

    prompt=prompt,

    template_scene=ChatScene.ChatDi.value(),

    stream_out=True,

    output_parser=DiChatOutputParser(),

)

CFG.prompt_template_registry.register(

    prompt_adapter, language=CFG.LANGUAGE, is_default=True

)

base.py

    ChatDi = Scene(

        code="chat_di",

        name="数据集成问答",

        describe="数据集成问答,生成数据集成任务和工作流",

        # param_types=["Plugin Select"],

)

chat_factory.py

        from dbgpt_app.scene.chat_di.chat import ChatDi  # noqa: F401

        from dbgpt_app.scene.chat_di.prompt import prompt  # noqa: F401,F811

gpts_app.py

        chat_with_di = NativeTeamContext(

            chat_scene="chat_di",

            scene_name="数据集成模型问答",

            scene_describe="数据集成模型问答",

            param_title="",

            show_disable=False,

        )

        chat_di_app = GptsApp(

            app_code=chat_with_di.chat_scene,

            app_name=chat_with_di.scene_name,

            language="zh",

            team_mode="native_app",

            details=[],

            app_describe=chat_with_di.scene_describe,

            team_context=chat_with_di,

            param_need=[

                {

                    "type": AppParamType.Resource.value,

                    "value": ResourceType.ExcelFile.value,

                },

                {"type": AppParamType.Model.value, "value": None},

                {"type": AppParamType.Temperature.value, "value": None},

                {"type": AppParamType.MaxNewTokens.value, "value": None},

            ],

            user_code=user_code,

            published="true",

        )

        try:

            gpts_dao.remove_native_app(chat_di_app.app_code)

            gpts_dao.create(chat_di_app)

        except Exception as ex:

            logger.exception(f"create chat_di_app error: {ex}")

http://www.xdnf.cn/news/464851.html

相关文章:

  • 【网络编程】九、详解 HTTPS 加密原理
  • 鸿蒙 ArkUI - ArkTS 组件 官方 UI组件 合集
  • AEO认证的好处 ,如何快速获取AEO认证?
  • Java应用OOM排查:面试通关“三部曲”心法
  • android display 笔记(十四)VAU 和GSP 分别代表什么
  • fpga系列 HDL : Microchip FPGA开发软件 Libero Soc 安装 license申请
  • 企业级Javaweb开发常用注解
  • macOS中5000端口被控制中心占用问题
  • 洛谷P4907题解
  • Milvus(23):过滤
  • 《Python星球日记》 第81天:回看图像生成与风格迁移
  • Python机器学习笔记(二十三 模型评估与改进-网格搜索)
  • AcroForm 文档(打开时)级脚本对比 Excel VBA 参考
  • 关于多线程的Redis模型
  • 数据科学和机器学习的“看家兵器”——pandas模块 之二
  • c++从入门到精通(四)--动态内存,模板与泛型编程
  • python克洛伊婚纱摄影预约管理系统
  • P2679 [NOIP 2015 提高组] 子串
  • Linux之Yum源与Nginx服务篇
  • Node.js 安装 + React Flow 快速入门:环境安装与项目搭建
  • Spring Boot 和 Jedis版本搭配的建议
  • 【言语】刷题5
  • win11平台下的docker-desktop中的volume位置问题
  • Newtonsoft.Json.JsonSerializationException
  • 安卓A15系统实现修改锁屏界面默认壁纸功能
  • 多个docker-compose-xx 停止并完全卸载 删除
  • C++:字符数组与字符串指针变量的大小
  • 鸿蒙OSUniApp制作多选框与单选框组件#三方框架 #Uniapp
  • 协作赋能-1-制造业生产流程重构
  • Midjourney 最佳创作思路与实战技巧深度解析【附提示词与学习资料包下载】