mirror of
https://github.com/memohai/Memoh.git
synced 2026-04-27 07:16:19 +09:00
Merge branch 'main' into fix/provider-scoped-model-id-resolution
This commit is contained in:
+6
-6
@@ -1,21 +1,21 @@
|
||||
-- name: CreateBot :one
|
||||
INSERT INTO bots (owner_user_id, type, display_name, avatar_url, is_active, metadata, status)
|
||||
VALUES ($1, $2, $3, $4, $5, $6, $7)
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at;
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, max_inbox_items, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at;
|
||||
|
||||
-- name: GetBotByID :one
|
||||
SELECT id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at
|
||||
SELECT id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, max_inbox_items, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at
|
||||
FROM bots
|
||||
WHERE id = $1;
|
||||
|
||||
-- name: ListBotsByOwner :many
|
||||
SELECT id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at
|
||||
SELECT id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, max_inbox_items, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at
|
||||
FROM bots
|
||||
WHERE owner_user_id = $1
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- name: ListBotsByMember :many
|
||||
SELECT b.id, b.owner_user_id, b.type, b.display_name, b.avatar_url, b.is_active, b.status, b.max_context_load_time, b.max_context_tokens, b.language, b.allow_guest, b.chat_model_id, b.memory_model_id, b.embedding_model_id, b.search_provider_id, b.metadata, b.created_at, b.updated_at
|
||||
SELECT b.id, b.owner_user_id, b.type, b.display_name, b.avatar_url, b.is_active, b.status, b.max_context_load_time, b.max_context_tokens, b.max_inbox_items, b.language, b.allow_guest, b.chat_model_id, b.memory_model_id, b.embedding_model_id, b.search_provider_id, b.metadata, b.created_at, b.updated_at
|
||||
FROM bots b
|
||||
JOIN bot_members m ON m.bot_id = b.id
|
||||
WHERE m.user_id = $1
|
||||
@@ -29,14 +29,14 @@ SET display_name = $2,
|
||||
metadata = $5,
|
||||
updated_at = now()
|
||||
WHERE id = $1
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at;
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, max_inbox_items, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at;
|
||||
|
||||
-- name: UpdateBotOwner :one
|
||||
UPDATE bots
|
||||
SET owner_user_id = $2,
|
||||
updated_at = now()
|
||||
WHERE id = $1
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at;
|
||||
RETURNING id, owner_user_id, type, display_name, avatar_url, is_active, status, max_context_load_time, max_context_tokens, max_inbox_items, language, allow_guest, chat_model_id, memory_model_id, embedding_model_id, search_provider_id, metadata, created_at, updated_at;
|
||||
|
||||
-- name: UpdateBotStatus :exec
|
||||
UPDATE bots
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
-- name: CreateInboxItem :one
|
||||
INSERT INTO bot_inbox (bot_id, source, content)
|
||||
VALUES (sqlc.arg(bot_id), sqlc.arg(source), sqlc.arg(content))
|
||||
RETURNING *;
|
||||
|
||||
-- name: GetInboxItemByID :one
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE id = sqlc.arg(id)
|
||||
AND bot_id = sqlc.arg(bot_id);
|
||||
|
||||
-- name: ListInboxItems :many
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND (sqlc.narg(is_read)::boolean IS NULL OR is_read = sqlc.narg(is_read)::boolean)
|
||||
AND (sqlc.narg(source)::text IS NULL OR source = sqlc.narg(source)::text)
|
||||
ORDER BY created_at DESC
|
||||
LIMIT sqlc.arg(max_count)
|
||||
OFFSET sqlc.arg(item_offset);
|
||||
|
||||
-- name: ListUnreadInboxItems :many
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND is_read = FALSE
|
||||
ORDER BY created_at ASC
|
||||
LIMIT sqlc.arg(max_count);
|
||||
|
||||
-- name: MarkInboxItemsRead :exec
|
||||
UPDATE bot_inbox
|
||||
SET is_read = TRUE,
|
||||
read_at = now()
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND id = ANY(sqlc.arg(ids)::uuid[])
|
||||
AND is_read = FALSE;
|
||||
|
||||
-- name: SearchInboxItems :many
|
||||
SELECT * FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND content::text ILIKE '%' || sqlc.arg(query) || '%'
|
||||
AND (sqlc.narg(start_time)::timestamptz IS NULL OR created_at >= sqlc.narg(start_time)::timestamptz)
|
||||
AND (sqlc.narg(end_time)::timestamptz IS NULL OR created_at <= sqlc.narg(end_time)::timestamptz)
|
||||
AND (sqlc.narg(include_read)::boolean IS NULL OR sqlc.narg(include_read)::boolean = TRUE OR is_read = FALSE)
|
||||
ORDER BY created_at DESC
|
||||
LIMIT sqlc.arg(max_count);
|
||||
|
||||
-- name: CountUnreadInboxItems :one
|
||||
SELECT count(*) FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id)
|
||||
AND is_read = FALSE;
|
||||
|
||||
-- name: CountInboxItems :one
|
||||
SELECT count(*) FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id);
|
||||
|
||||
-- name: DeleteInboxItem :exec
|
||||
DELETE FROM bot_inbox
|
||||
WHERE id = sqlc.arg(id)
|
||||
AND bot_id = sqlc.arg(bot_id);
|
||||
|
||||
-- name: DeleteInboxItemsByBot :exec
|
||||
DELETE FROM bot_inbox
|
||||
WHERE bot_id = sqlc.arg(bot_id);
|
||||
@@ -86,6 +86,30 @@ WHERE m.bot_id = sqlc.arg(bot_id)
|
||||
AND m.created_at >= sqlc.arg(created_at)
|
||||
ORDER BY m.created_at ASC;
|
||||
|
||||
-- name: ListActiveMessagesSince :many
|
||||
SELECT
|
||||
m.id,
|
||||
m.bot_id,
|
||||
m.route_id,
|
||||
m.sender_channel_identity_id,
|
||||
m.sender_account_user_id AS sender_user_id,
|
||||
m.channel_type AS platform,
|
||||
m.source_message_id AS external_message_id,
|
||||
m.source_reply_to_message_id,
|
||||
m.role,
|
||||
m.content,
|
||||
m.metadata,
|
||||
m.usage,
|
||||
m.created_at,
|
||||
ci.display_name AS sender_display_name,
|
||||
ci.avatar_url AS sender_avatar_url
|
||||
FROM bot_history_messages m
|
||||
LEFT JOIN channel_identities ci ON ci.id = m.sender_channel_identity_id
|
||||
WHERE m.bot_id = sqlc.arg(bot_id)
|
||||
AND m.created_at >= sqlc.arg(created_at)
|
||||
AND (m.metadata->>'trigger_mode' IS NULL OR m.metadata->>'trigger_mode' != 'passive_sync')
|
||||
ORDER BY m.created_at ASC;
|
||||
|
||||
-- name: ListMessagesBefore :many
|
||||
SELECT
|
||||
m.id,
|
||||
|
||||
@@ -3,6 +3,7 @@ SELECT
|
||||
bots.id AS bot_id,
|
||||
bots.max_context_load_time,
|
||||
bots.max_context_tokens,
|
||||
bots.max_inbox_items,
|
||||
bots.language,
|
||||
bots.allow_guest,
|
||||
chat_models.id AS chat_model_id,
|
||||
@@ -21,6 +22,7 @@ WITH updated AS (
|
||||
UPDATE bots
|
||||
SET max_context_load_time = sqlc.arg(max_context_load_time),
|
||||
max_context_tokens = sqlc.arg(max_context_tokens),
|
||||
max_inbox_items = sqlc.arg(max_inbox_items),
|
||||
language = sqlc.arg(language),
|
||||
allow_guest = sqlc.arg(allow_guest),
|
||||
chat_model_id = COALESCE(sqlc.narg(chat_model_id)::uuid, bots.chat_model_id),
|
||||
@@ -29,12 +31,13 @@ WITH updated AS (
|
||||
search_provider_id = COALESCE(sqlc.narg(search_provider_id)::uuid, bots.search_provider_id),
|
||||
updated_at = now()
|
||||
WHERE bots.id = sqlc.arg(id)
|
||||
RETURNING bots.id, bots.max_context_load_time, bots.max_context_tokens, bots.language, bots.allow_guest, bots.chat_model_id, bots.memory_model_id, bots.embedding_model_id, bots.search_provider_id
|
||||
RETURNING bots.id, bots.max_context_load_time, bots.max_context_tokens, bots.max_inbox_items, bots.language, bots.allow_guest, bots.chat_model_id, bots.memory_model_id, bots.embedding_model_id, bots.search_provider_id
|
||||
)
|
||||
SELECT
|
||||
updated.id AS bot_id,
|
||||
updated.max_context_load_time,
|
||||
updated.max_context_tokens,
|
||||
updated.max_inbox_items,
|
||||
updated.language,
|
||||
updated.allow_guest,
|
||||
chat_models.id AS chat_model_id,
|
||||
@@ -51,6 +54,7 @@ LEFT JOIN search_providers ON search_providers.id = updated.search_provider_id;
|
||||
UPDATE bots
|
||||
SET max_context_load_time = 1440,
|
||||
max_context_tokens = 0,
|
||||
max_inbox_items = 50,
|
||||
language = 'auto',
|
||||
allow_guest = false,
|
||||
chat_model_id = NULL,
|
||||
|
||||
Reference in New Issue
Block a user