ForcePilot/backend/package/yuxi/channel/extensions/googlechat/streaming.py
Kris c4e301a5e0 feat(googlechat): 新增Google Chat渠道完整实现
新增Google Chat插件的所有核心功能模块,包括账户配置、消息收发、权限控制、媒体处理、会话管理等完整能力
2026-05-21 10:49:33 +08:00

38 lines
1.1 KiB
Python

from __future__ import annotations
import logging
from yuxi.channel.extensions.googlechat.api import send_message
from yuxi.channel.extensions.googlechat.formatting import chunk_markdown_text
from yuxi.channel.extensions.googlechat.types import ResolvedGoogleChatAccount
logger = logging.getLogger(__name__)
async def stream_text_by_chunks(
account: ResolvedGoogleChatAccount,
space_name: str,
full_text: str,
*,
thread_name: str | None = None,
chunk_limit: int = 4000,
) -> list[str]:
chunks = chunk_markdown_text(full_text, chunk_limit)
message_names: list[str] = []
for chunk in chunks:
result = await send_message(account, space_name, chunk, thread_name=thread_name)
name = result.get("name", "")
if name:
message_names.append(name)
return message_names
async def send_coalesced_text(
account: ResolvedGoogleChatAccount,
space_name: str,
text: str,
*,
thread_name: str | None = None,
) -> str:
result = await send_message(account, space_name, text, thread_name=thread_name)
return result.get("name", "")