bolt.new/app/components/chat/AssistantMessage.tsx

25 lines
760 B
TypeScript
Raw Normal View History

2024-07-10 16:44:39 +00:00
import { memo } from 'react';
import { Markdown } from './Markdown';
2024-12-16 09:01:41 +00:00
import { USAGE_REGEX } from '~/utils/constants';
2024-07-10 16:44:39 +00:00
interface AssistantMessageProps {
content: string;
}
export const AssistantMessage = memo(({ content }: AssistantMessageProps) => {
2024-12-16 09:01:41 +00:00
const match = content.match(USAGE_REGEX);
const usage = match ? JSON.parse(match[1]) : null;
const cleanContent = content.replace(USAGE_REGEX, '').trim();
2024-07-10 16:44:39 +00:00
return (
<div className="overflow-hidden w-full">
2024-12-16 09:01:41 +00:00
{usage && (
<div className="text-sm text-bolt-elements-textSecondary mb-2">
Tokens: {usage.totalTokens} (prompt: {usage.promptTokens}, completion: {usage.completionTokens})
</div>
)}
<Markdown html>{cleanContent}</Markdown>
2024-07-10 16:44:39 +00:00
</div>
);
});