release: prepare 0629001 portal updates
This commit is contained in:
+22
-11
@@ -3,6 +3,9 @@ import { mergeMessageContent } from '../../message-stream.mjs';
|
||||
import { stripUserAddressPrefix } from './userAddress';
|
||||
|
||||
const IMAGE_URL_LINE_RE = /^\[图片\d+]: (.+)$/;
|
||||
const IMAGE_URL_LINES_RE = /\n*\[图片\d+]: [^\n]+/g;
|
||||
const USER_IDENTITY_BLOCK_RE = /^\[用户身份\][\s\S]*?(?:\n{2,}|$)/;
|
||||
const TKMIND_VISION_NOTE_RE = /\n*【TKMind 图片分析结果[\s\S]*$/;
|
||||
|
||||
function normalizeImageUrl(url: string): string {
|
||||
const value = String(url ?? '').trim();
|
||||
@@ -32,6 +35,14 @@ function formatImageUrlsForAgentText(urls: string[]): string {
|
||||
.join('\n');
|
||||
}
|
||||
|
||||
function stripImageUrlLines(text: string): string {
|
||||
return String(text ?? '')
|
||||
.replace(USER_IDENTITY_BLOCK_RE, '')
|
||||
.replace(TKMIND_VISION_NOTE_RE, '')
|
||||
.replace(IMAGE_URL_LINES_RE, '')
|
||||
.trim();
|
||||
}
|
||||
|
||||
function parseImageUrlsFromText(text: string): string[] {
|
||||
const urls: string[] = [];
|
||||
for (const line of text.split('\n')) {
|
||||
@@ -71,12 +82,12 @@ export function normalizeUserMessageForApi(message: Message): Message {
|
||||
const imageUrls = getImageUrls(message);
|
||||
const displayText =
|
||||
message.metadata.displayText ??
|
||||
message.content
|
||||
.filter((item): item is Extract<MessageContent, { type: 'text' }> => item.type === 'text')
|
||||
.map((item) => item.text)
|
||||
.join('\n')
|
||||
.replace(/\n*\[图片\d+]: [^\n]+/g, '')
|
||||
.trim();
|
||||
stripImageUrlLines(
|
||||
message.content
|
||||
.filter((item): item is Extract<MessageContent, { type: 'text' }> => item.type === 'text')
|
||||
.map((item) => item.text)
|
||||
.join('\n'),
|
||||
);
|
||||
|
||||
const textOnly = message.content
|
||||
.filter((item): item is Extract<MessageContent, { type: 'text' }> => item.type === 'text')
|
||||
@@ -89,7 +100,7 @@ export function normalizeUserMessageForApi(message: Message): Message {
|
||||
}
|
||||
|
||||
const imageText = formatImageUrlsForAgentText(imageUrls);
|
||||
const agentText = [textOnly.replace(/\n*\[图片\d+]: [^\n]+/g, '').trim(), imageText]
|
||||
const agentText = [stripImageUrlLines(textOnly), imageText]
|
||||
.filter(Boolean)
|
||||
.join('\n\n');
|
||||
|
||||
@@ -108,7 +119,7 @@ export function buildUserMessage(
|
||||
text: string,
|
||||
options?: { agentText?: string; displayText?: string; imageUrls?: string[]; previewImageUrls?: string[] },
|
||||
): Message {
|
||||
const displayText = options?.displayText ?? text;
|
||||
const displayText = stripImageUrlLines(options?.displayText ?? text);
|
||||
const imageUrls = (options?.imageUrls ?? []).filter((value) => typeof value === 'string' && value.trim());
|
||||
const previewImageUrls = (options?.previewImageUrls ?? []).filter(
|
||||
(value) => typeof value === 'string' && value.trim(),
|
||||
@@ -160,12 +171,12 @@ export function mergeConversationSnapshot(current: Message[], incoming: Message[
|
||||
|
||||
export function getDisplayText(message: Message): string {
|
||||
if ('displayText' in message.metadata) {
|
||||
return message.metadata.displayText ?? '';
|
||||
return stripImageUrlLines(message.metadata.displayText ?? '');
|
||||
}
|
||||
const systemText = getSystemNotificationText(message);
|
||||
if (systemText) return systemText;
|
||||
const visible = getVisibleText(message);
|
||||
return message.role === 'user' ? stripUserAddressPrefix(visible) : visible;
|
||||
return message.role === 'user' ? stripImageUrlLines(stripUserAddressPrefix(visible)) : visible;
|
||||
}
|
||||
|
||||
export function pushMessage(messages: Message[], incoming: Message): Message[] {
|
||||
@@ -187,7 +198,7 @@ export function getVisibleText(message: Message): string {
|
||||
.filter((c): c is Extract<MessageContent, { type: 'text' }> => c.type === 'text')
|
||||
.map((c) => c.text)
|
||||
.join('');
|
||||
return text.replace(/\n*\[图片\d+]: [^\n]+/g, '').trim();
|
||||
return stripImageUrlLines(text);
|
||||
}
|
||||
|
||||
export function getImageUrls(message: Message): string[] {
|
||||
|
||||
Reference in New Issue
Block a user