mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-09 23:10:20 +08:00
Refactor logging levels in transform.ts and adjust JSON body parser configuration in app.ts
This commit is contained in:
parent
634c478e18
commit
2385fba695
@ -15,6 +15,11 @@ import { modelsRoutes } from './routes/models'
|
|||||||
const logger = loggerService.withContext('ApiServer')
|
const logger = loggerService.withContext('ApiServer')
|
||||||
|
|
||||||
const app = express()
|
const app = express()
|
||||||
|
app.use(
|
||||||
|
express.json({
|
||||||
|
limit: '50mb'
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
// Global middleware
|
// Global middleware
|
||||||
app.use((req, res, next) => {
|
app.use((req, res, next) => {
|
||||||
@ -111,7 +116,6 @@ app.get('/', (_req, res) => {
|
|||||||
// Provider-specific API routes with auth (must be before /v1 to avoid conflicts)
|
// Provider-specific API routes with auth (must be before /v1 to avoid conflicts)
|
||||||
const providerRouter = express.Router({ mergeParams: true })
|
const providerRouter = express.Router({ mergeParams: true })
|
||||||
providerRouter.use(authMiddleware)
|
providerRouter.use(authMiddleware)
|
||||||
providerRouter.use(express.json())
|
|
||||||
// Mount provider-specific messages route
|
// Mount provider-specific messages route
|
||||||
providerRouter.use('/v1/messages', messagesProviderRoutes)
|
providerRouter.use('/v1/messages', messagesProviderRoutes)
|
||||||
app.use('/:provider', providerRouter)
|
app.use('/:provider', providerRouter)
|
||||||
@ -119,7 +123,6 @@ app.use('/:provider', providerRouter)
|
|||||||
// API v1 routes with auth
|
// API v1 routes with auth
|
||||||
const apiRouter = express.Router()
|
const apiRouter = express.Router()
|
||||||
apiRouter.use(authMiddleware)
|
apiRouter.use(authMiddleware)
|
||||||
apiRouter.use(express.json())
|
|
||||||
// Mount routes
|
// Mount routes
|
||||||
apiRouter.use('/chat', chatRoutes)
|
apiRouter.use('/chat', chatRoutes)
|
||||||
apiRouter.use('/mcps', mcpRoutes)
|
apiRouter.use('/mcps', mcpRoutes)
|
||||||
|
|||||||
@ -7,7 +7,7 @@ const logger = loggerService.withContext('ApiServerUtils')
|
|||||||
|
|
||||||
// Cache configuration
|
// Cache configuration
|
||||||
const PROVIDERS_CACHE_KEY = 'api-server:providers'
|
const PROVIDERS_CACHE_KEY = 'api-server:providers'
|
||||||
const PROVIDERS_CACHE_TTL = 5 * 60 * 1000 // 5 minutes
|
const PROVIDERS_CACHE_TTL = 1 * 60 * 1000 // 1 minutes
|
||||||
|
|
||||||
export async function getAvailableProviders(): Promise<Provider[]> {
|
export async function getAvailableProviders(): Promise<Provider[]> {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -34,7 +34,7 @@ const generateMessageId = (): string => `msg_${uuidv4().replace(/-/g, '')}`
|
|||||||
// Main transform function
|
// Main transform function
|
||||||
export function transformSDKMessageToStreamParts(sdkMessage: SDKMessage): AgentStreamPart[] {
|
export function transformSDKMessageToStreamParts(sdkMessage: SDKMessage): AgentStreamPart[] {
|
||||||
const chunks: AgentStreamPart[] = []
|
const chunks: AgentStreamPart[] = []
|
||||||
logger.debug('Transforming SDKMessage to stream parts', sdkMessage)
|
logger.silly('Transforming SDKMessage to stream parts', sdkMessage)
|
||||||
switch (sdkMessage.type) {
|
switch (sdkMessage.type) {
|
||||||
case 'assistant':
|
case 'assistant':
|
||||||
case 'user':
|
case 'user':
|
||||||
@ -105,7 +105,6 @@ function handleUserOrAssistantMessage(message: Extract<SDKMessage, { type: 'assi
|
|||||||
}
|
}
|
||||||
} else if (Array.isArray(message.message.content)) {
|
} else if (Array.isArray(message.message.content)) {
|
||||||
for (const block of message.message.content) {
|
for (const block of message.message.content) {
|
||||||
logger.debug('Handling user or assistant message:', { block })
|
|
||||||
switch (block.type) {
|
switch (block.type) {
|
||||||
case 'text':
|
case 'text':
|
||||||
chunks.push(...generateTextChunks(messageId, block.text, message))
|
chunks.push(...generateTextChunks(messageId, block.text, message))
|
||||||
@ -127,8 +126,7 @@ function handleUserOrAssistantMessage(message: Extract<SDKMessage, { type: 'assi
|
|||||||
})
|
})
|
||||||
break
|
break
|
||||||
case 'tool_result': {
|
case 'tool_result': {
|
||||||
logger.debug('Handling tool result:', { block })
|
logger.silly('Handling tool result:', { block, content: contentBlockState })
|
||||||
logger.debug('contentblockState', { content: contentBlockState })
|
|
||||||
const hasToolCall = contentBlockState.has(block.tool_use_id)
|
const hasToolCall = contentBlockState.has(block.tool_use_id)
|
||||||
const toolCall = contentBlockState.get(block.tool_use_id) as toolCallBlock
|
const toolCall = contentBlockState.get(block.tool_use_id) as toolCallBlock
|
||||||
chunks.push({
|
chunks.push({
|
||||||
@ -161,7 +159,7 @@ function handleStreamEvent(message: Extract<SDKMessage, { type: 'stream_event' }
|
|||||||
const chunks: AgentStreamPart[] = []
|
const chunks: AgentStreamPart[] = []
|
||||||
const event = message.event
|
const event = message.event
|
||||||
const blockKey = `${message.uuid ?? message.session_id ?? 'session'}:${event.type}`
|
const blockKey = `${message.uuid ?? message.session_id ?? 'session'}:${event.type}`
|
||||||
logger.debug('Handling stream event:', { event })
|
logger.silly('Handling stream event:', { event })
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
case 'message_start':
|
case 'message_start':
|
||||||
// No specific UI chunk needed for message start in this protocol
|
// No specific UI chunk needed for message start in this protocol
|
||||||
@ -291,9 +289,6 @@ function handleStreamEvent(message: Extract<SDKMessage, { type: 'stream_event' }
|
|||||||
// Handle system messages
|
// Handle system messages
|
||||||
function handleSystemMessage(message: Extract<SDKMessage, { type: 'system' }>): AgentStreamPart[] {
|
function handleSystemMessage(message: Extract<SDKMessage, { type: 'system' }>): AgentStreamPart[] {
|
||||||
const chunks: AgentStreamPart[] = []
|
const chunks: AgentStreamPart[] = []
|
||||||
logger.debug('Received system message', {
|
|
||||||
subtype: message.subtype
|
|
||||||
})
|
|
||||||
switch (message.subtype) {
|
switch (message.subtype) {
|
||||||
case 'init': {
|
case 'init': {
|
||||||
chunks.push({
|
chunks.push({
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user