import _React from "react"; import { Button, Space } from "antd"; import { RedoOutlined, LikeOutlined, DislikeOutlined, CopyOutlined, ShareAltOutlined, } from "@ant-design/icons"; import type { AssistantMessageProps } from "../../types/chat" import Marked from "../general/Marked"; import { VersionSwitcher } from "./VersionSwitcher"; import ToolMessage from "./ToolMessage"; const AssistantMessage = ({ session, onRefresh, ___onEdit, isPending, onLike, onDislike, onCopy, onShare, onVersionSwitch, }: AssistantMessageProps) => { const messages = session.ai_messages; const mainMessage = messages.find((m) => m.role === "assistant" && m.content); const _____toolMessages = messages.filter((m) => m.role === "tool"); const handleCopy = () => { if (mainMessage?.content && onCopy) { onCopy(mainMessage.uid); } }; const handleShare = async () => { if (mainMessage && onShare) { try { const shareUrl = await onShare(mainMessage.uid); // 可以显示分享链接或复制到剪贴板 navigator.clipboard.writeText(shareUrl); } catch (err) { console.error("分享失败:", err); } } }; return (
{mainMessage?.model_id && ( {mainMessage.model_id} )}
{/* Tool calls 显示 */} {/* 主要回答内容 */} {mainMessage?.content && (
{isPending && ( 生成中... )}
)} {/* Token 使用信息 */} {mainMessage?.metadata?.token_usage && (
Token: {mainMessage.metadata.token_usage.total_tokens}
)}
{!isPending && (
)}
); }; export default AssistantMessage;