fix: generating topic name after exporting prompt file name is invalid #641

close #641
This commit is contained in:
kangfenmao 2025-01-06 15:50:57 +08:00
parent bb50447a98
commit ad577818dd
4 changed files with 13 additions and 4 deletions

View File

@ -8,6 +8,7 @@ import { getAssistantSettings, getDefaultModel, getTopNamingModel } from '@rende
import { EVENT_NAMES } from '@renderer/services/EventService' import { EVENT_NAMES } from '@renderer/services/EventService'
import { filterContextMessages } from '@renderer/services/MessagesService' import { filterContextMessages } from '@renderer/services/MessagesService'
import { Assistant, FileTypes, Message, Provider, Suggestion } from '@renderer/types' import { Assistant, FileTypes, Message, Provider, Suggestion } from '@renderer/types'
import { removeSpecialCharacters } from '@renderer/utils'
import { first, flatten, last, sum, takeRight } from 'lodash' import { first, flatten, last, sum, takeRight } from 'lodash'
import OpenAI from 'openai' import OpenAI from 'openai'
@ -206,7 +207,9 @@ export default class AnthropicProvider extends BaseProvider {
max_tokens: 4096 max_tokens: 4096
}) })
return message.content[0].type === 'text' ? message.content[0].text : '' const content = message.content[0].type === 'text' ? message.content[0].text : ''
return removeSpecialCharacters(content)
} }
public async generateText({ prompt, content }: { prompt: string; content: string }): Promise<string> { public async generateText({ prompt, content }: { prompt: string; content: string }): Promise<string> {

View File

@ -15,6 +15,7 @@ import { getAssistantSettings, getDefaultModel, getTopNamingModel } from '@rende
import { EVENT_NAMES } from '@renderer/services/EventService' import { EVENT_NAMES } from '@renderer/services/EventService'
import { filterContextMessages } from '@renderer/services/MessagesService' import { filterContextMessages } from '@renderer/services/MessagesService'
import { Assistant, FileTypes, Message, Model, Provider, Suggestion } from '@renderer/types' import { Assistant, FileTypes, Message, Model, Provider, Suggestion } from '@renderer/types'
import { removeSpecialCharacters } from '@renderer/utils'
import axios from 'axios' import axios from 'axios'
import { first, isEmpty, last, takeRight } from 'lodash' import { first, isEmpty, last, takeRight } from 'lodash'
import OpenAI from 'openai' import OpenAI from 'openai'
@ -223,7 +224,7 @@ export default class GeminiProvider extends BaseProvider {
const { response } = await chat.sendMessage(userMessage.content) const { response } = await chat.sendMessage(userMessage.content)
return response.text() return removeSpecialCharacters(response.text())
} }
public async generateText({ prompt, content }: { prompt: string; content: string }): Promise<string> { public async generateText({ prompt, content }: { prompt: string; content: string }): Promise<string> {

View File

@ -5,7 +5,7 @@ import { getAssistantSettings, getDefaultModel, getTopNamingModel } from '@rende
import { EVENT_NAMES } from '@renderer/services/EventService' import { EVENT_NAMES } from '@renderer/services/EventService'
import { filterContextMessages } from '@renderer/services/MessagesService' import { filterContextMessages } from '@renderer/services/MessagesService'
import { Assistant, FileTypes, GenerateImageParams, Message, Model, Provider, Suggestion } from '@renderer/types' import { Assistant, FileTypes, GenerateImageParams, Message, Model, Provider, Suggestion } from '@renderer/types'
import { removeQuotes } from '@renderer/utils' import { removeSpecialCharacters } from '@renderer/utils'
import { last, takeRight } from 'lodash' import { last, takeRight } from 'lodash'
import OpenAI, { AzureOpenAI } from 'openai' import OpenAI, { AzureOpenAI } from 'openai'
import { import {
@ -240,7 +240,7 @@ export default class OpenAIProvider extends BaseProvider {
max_tokens: 1000 max_tokens: 1000
}) })
return removeQuotes(response.choices[0].message?.content?.substring(0, 50) || '') return removeSpecialCharacters(response.choices[0].message?.content?.substring(0, 50) || '')
} }
public async generateText({ prompt, content }: { prompt: string; content: string }): Promise<string> { public async generateText({ prompt, content }: { prompt: string; content: string }): Promise<string> {

View File

@ -152,6 +152,11 @@ export function removeQuotes(str) {
return str.replace(/['"]+/g, '') return str.replace(/['"]+/g, '')
} }
export function removeSpecialCharacters(str: string) {
// First remove newlines and quotes, then remove other special characters
return str.replace(/[\n"]/g, '').replace(/[^\p{L}\p{M}\p{N}\p{P}\p{S}]/gu, '')
}
export function generateColorFromChar(char: string) { export function generateColorFromChar(char: string) {
// 使用字符的Unicode值作为随机种子 // 使用字符的Unicode值作为随机种子
const seed = char.charCodeAt(0) const seed = char.charCodeAt(0)