feat: AI 工具架构重构与微信增强 (0.2.17 → 0.2.22)
0.2.17 收束模型初始工具列表: - 仅暴露 query_capabilities/query_capability_detail/call_capability 三个入口 - API 能力统一通过 iAs HTTP API 封装,删除重复 YAML 工具 0.2.18 系统提示词拆分: - 固定系统提示词硬编码,动态附加部分 AI 可维护 - 新增 update_additional_system_prompt 能力和持久化 0.2.19 上下文增强与打断语义: - /new 拥有最高打断语义,取消运行中任务并清除当前 turn - raw_message JSONB 原文入库,群聊按 group_id 隔离作用域 - 工具调用说明替代动态附加系统提示词 0.2.20 微信输入中状态: - 改用官方 getconfig + sendtyping 流程,显式管理 typing 状态 0.2.21 API 文档功能分组: - /v1/api-docs 返回 groups,帮助 AI 按功能面发现接口 0.2.22 AI API 能力去重: - 移除与 HTTP endpoint 重复的专用能力,统一用 query_api_docs + call_http_api - 删除不再编译的 web/memory 工具文件
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
ALTER TABLE ias_context_messages
|
||||
ADD COLUMN IF NOT EXISTS raw_message JSONB;
|
||||
|
||||
ALTER TABLE ias_context_messages
|
||||
ADD COLUMN IF NOT EXISTS external_message_id VARCHAR(255);
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_ias_context_messages_external_unique
|
||||
ON ias_context_messages(session_id, role, external_message_id)
|
||||
WHERE external_message_id IS NOT NULL;
|
||||
|
||||
WITH ranked AS (
|
||||
SELECT
|
||||
id,
|
||||
ROW_NUMBER() OVER (
|
||||
PARTITION BY scope_key
|
||||
ORDER BY started_at DESC, id DESC
|
||||
) AS rank
|
||||
FROM ias_context_sessions
|
||||
WHERE ended_at IS NULL
|
||||
)
|
||||
UPDATE ias_context_sessions AS session
|
||||
SET
|
||||
ended_at = last_message_at,
|
||||
end_reason = 'active_session_deduplicated',
|
||||
summary = COALESCE(summary, '创建活跃会话唯一约束时自动结束的重复活跃上下文。')
|
||||
FROM ranked
|
||||
WHERE session.id = ranked.id
|
||||
AND ranked.rank > 1;
|
||||
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_ias_context_sessions_one_active
|
||||
ON ias_context_sessions(scope_key)
|
||||
WHERE ended_at IS NULL;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS ias_tool_call_instructions (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
scope_key VARCHAR(768) NOT NULL UNIQUE,
|
||||
channel VARCHAR(64) NOT NULL,
|
||||
account_id VARCHAR(255) NOT NULL,
|
||||
from_user_id VARCHAR(255) NOT NULL,
|
||||
context_label TEXT,
|
||||
content TEXT NOT NULL DEFAULT '',
|
||||
last_reason TEXT,
|
||||
updated_by VARCHAR(64) NOT NULL DEFAULT 'ai',
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_ias_tool_call_instructions_scope_updated
|
||||
ON ias_tool_call_instructions(scope_key, updated_at DESC);
|
||||
|
||||
INSERT INTO ias_tool_call_instructions (
|
||||
scope_key,
|
||||
channel,
|
||||
account_id,
|
||||
from_user_id,
|
||||
context_label,
|
||||
content,
|
||||
last_reason,
|
||||
updated_by,
|
||||
created_at,
|
||||
updated_at
|
||||
)
|
||||
SELECT
|
||||
scope_key,
|
||||
channel,
|
||||
account_id,
|
||||
from_user_id,
|
||||
context_label,
|
||||
content,
|
||||
last_reason,
|
||||
updated_by,
|
||||
created_at,
|
||||
updated_at
|
||||
FROM ias_additional_system_prompts
|
||||
WHERE content <> ''
|
||||
ON CONFLICT (scope_key) DO NOTHING;
|
||||
Reference in New Issue
Block a user