当前位置: 首页 > 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.dtcms.com/a/191678.html

相关文章:

  • 空间组学高级分析方法介绍
  • 基于Deeplearning4j的多源数据融合预测模型实现:从设计到落地全解析
  • 线程通信的核心机制
  • 一套基于 Bootstrap 和 .NET Blazor 的开源企业级组件库
  • Java集合框架
  • 学习日志07 java
  • .NET 无侵入自动化探针原理与主流实现详解
  • redis中key的过期和淘汰
  • 【python实用小脚本-63】每天花费2小时修复黑白照片,Python一键转换,节省90%时间(建议收藏)
  • C++(12):using声明
  • TensorFlow深度学习实战(16)——注意力机制详解
  • 医疗数据迁移质量与效率的深度研究:三维六阶框架与实践创新
  • OpenCV光流估计:原理、实现与应用
  • 【视频】解决FFmpeg将RTSP转RTMP流时,出现的卡死、出错等问题
  • OpenCV CUDA模块中矩阵操作------范数(Norm)相关函数
  • Ubuntu 编译SRS和ZLMediaKit用于视频推拉流
  • Opencv C++写中文(来自Gemini)
  • 电脑桌面便签哪个好?2025年电脑免费用的便签软件推荐
  • Maven clean 提示文件 java.io.IOException
  • nginx负载均衡及keepalive高可用
  • [IMX] 02.GPIO 寄存器
  • [IMX] 03.时钟树 - Clock Tree
  • C#中BackgroundWorker的概念与用法详解
  • 【网工】华为配置基础篇①
  • 华为数字政府与数字城市售前高级专家认证介绍
  • 【hadoop】Flume的相关介绍
  • [Linux]从零开始的STM32MP157 Busybox根文件系统测试及打包
  • [IP地址科普] 服务器公网IP、私网IP、弹性IP是什么?区别与应用场景详解
  • java-JUC概述(进行分类总结-包含原子类、并发集合、线程等)
  • Profibus DP主站转Profinet网关接E+H流量计与西门子plc通讯