feat: 新增业务字段路径读写工具
新增 TakeBusinessFields、WriteBusinessFields、SetByPath 与 GetByPath 等工具,支持按映射路径写入请求体与解析响应,并更新相关依赖。
This commit is contained in:
+91
-1
@@ -227,4 +227,94 @@ COMMENT ON COLUMN model_gateway_logs_op.success IS '是否成功:1成功/0失
|
||||
COMMENT ON COLUMN model_gateway_logs_op.error_msg IS '错误信息(失败时)';
|
||||
COMMENT ON COLUMN model_gateway_logs_op.cost_ms IS '耗时(毫秒)';
|
||||
COMMENT ON COLUMN model_gateway_logs_op.request_payload IS '请求 JSON';
|
||||
COMMENT ON COLUMN model_gateway_logs_op.response_payload IS '响应 JSON';
|
||||
COMMENT ON COLUMN model_gateway_logs_op.response_payload IS '响应 JSON';
|
||||
|
||||
|
||||
-- =====================================================================================
|
||||
|
||||
--------------------pgsql创建model_gateway_model_manage表语句---------------------------
|
||||
-- 模型管理表
|
||||
CREATE TABLE IF NOT EXISTS model_gateway_model_manage (
|
||||
id BIGINT PRIMARY KEY,
|
||||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||||
creator VARCHAR(64) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updater VARCHAR(64) NOT NULL,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at timestamp(6),
|
||||
|
||||
model_supplier VARCHAR(64) NOT NULL DEFAULT '',
|
||||
model_name VARCHAR(128) NOT NULL DEFAULT '',
|
||||
model_type INT NOT NULL DEFAULT 0,
|
||||
base_url VARCHAR(512) NOT NULL DEFAULT '',
|
||||
http_method VARCHAR(32) NOT NULL DEFAULT '',
|
||||
system_model BOOLEAN NOT NULL DEFAULT false,
|
||||
private_model BOOLEAN NOT NULL DEFAULT false,
|
||||
chat_model BOOLEAN NOT NULL DEFAULT false,
|
||||
invoke_type VARCHAR(32) NOT NULL DEFAULT '',
|
||||
api_key VARCHAR(255) NOT NULL DEFAULT '',
|
||||
enabled BOOLEAN NOT NULL DEFAULT false,
|
||||
request_mapping JSONB DEFAULT '{}',
|
||||
response_mapping JSONB DEFAULT '{}',
|
||||
max_concurrency INT NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
-- 索引
|
||||
CREATE INDEX idx_model_manage_tenant_id ON model_gateway_model_manage(tenant_id);
|
||||
CREATE INDEX idx_model_manage_supplier ON model_gateway_model_manage(model_supplier);
|
||||
CREATE INDEX idx_model_manage_type ON model_gateway_model_manage(model_type);
|
||||
CREATE INDEX idx_model_manage_enabled ON model_gateway_model_manage(enabled);
|
||||
CREATE INDEX idx_model_manage_deleted_at ON model_gateway_model_manage(deleted_at);
|
||||
|
||||
-- 字段与表注释
|
||||
COMMENT ON TABLE model_gateway_model_manage IS '模型管理表';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.id IS '主键ID';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.tenant_id IS '租户ID';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.creator IS '创建人';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.created_at IS '创建时间';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.updater IS '更新人';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.updated_at IS '更新时间';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.deleted_at IS '删除时间(软删)';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.model_supplier IS '模型供应商';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.model_name IS '模型名称';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.model_type IS '模型类型';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.base_url IS '模型地址';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.http_method IS 'http方法';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.system_model IS '是否系统模型';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.private_model IS '是否私有模型';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.chat_model IS '是否聊天模型';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.invoke_type IS '调用类型';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.api_key IS 'api key';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.enabled IS '是否启用';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.request_mapping IS '请求映射';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.response_mapping IS '响应映射';
|
||||
COMMENT ON COLUMN model_gateway_model_manage.max_concurrency IS '最大并发数';
|
||||
--------------------pgsql创建model_gateway_model_manage表语句---------------------------
|
||||
|
||||
|
||||
-- =========================
|
||||
-- 计费规则:model_manage 新增 price_config(JSONB),model_session 新增 total_cost(NUMERIC)
|
||||
-- =========================
|
||||
ALTER TABLE model_gateway_model_manage
|
||||
ADD COLUMN IF NOT EXISTS price_config JSONB DEFAULT NULL;
|
||||
COMMENT ON COLUMN model_gateway_model_manage.price_config
|
||||
IS '计费规则:{currency,unit,dimensions,rules,discount},未配置为NULL(费用按0处理)';
|
||||
|
||||
ALTER TABLE model_gateway_session
|
||||
ADD COLUMN IF NOT EXISTS total_cost NUMERIC DEFAULT 0;
|
||||
COMMENT ON COLUMN model_gateway_session.total_cost
|
||||
IS '本次调用总费用(元),未配置计费规则为0';
|
||||
|
||||
-- =========================
|
||||
-- 异步任务计费:task_start 快照 media_type,task_end 记录 total_cost
|
||||
-- 模型计费配置(price_config)任务完成时按 modelId 从 model_manage 现查,不在 task_start 快照
|
||||
-- =========================
|
||||
ALTER TABLE model_gateway_model_task_start
|
||||
ADD COLUMN IF NOT EXISTS media_type VARCHAR(32) DEFAULT NULL;
|
||||
COMMENT ON COLUMN model_gateway_model_task_start.media_type
|
||||
IS '输入媒体类型快照(audio/no_video/has_video,创建任务时按请求体参考媒体字段推导)';
|
||||
|
||||
ALTER TABLE model_gateway_model_task_end
|
||||
ADD COLUMN IF NOT EXISTS total_cost NUMERIC DEFAULT 0;
|
||||
COMMENT ON COLUMN model_gateway_model_task_end.total_cost
|
||||
IS '本次调用总费用(元),未配置计费规则为0';
|
||||
Reference in New Issue
Block a user