69 lines
1.9 KiB
TypeScript
69 lines
1.9 KiB
TypeScript
import { NextResponse } from 'next/server'
|
|
import { oapiClient } from '../oapi-client'
|
|
import { getDefaultAgentId, getDefaultAgentName } from '../nova-config'
|
|
import { getProjectId, getUserId } from '@/utils/getAuth'
|
|
|
|
const buildWssUrl = () => {
|
|
const baseUrl = process.env.NOVA_BASE_URL!
|
|
const wssBase = baseUrl.replace('https://', 'wss://').replace('http://', 'ws://')
|
|
const authorization = process.env.NOVA_ACCESS_KEY
|
|
const tenantId = process.env.NOVA_TENANT_ID
|
|
return `${wssBase}/v1/super_agent/chat/completions?Authorization=${authorization}&X-Locale=zh&X-Region=CN&Tenant-Id=${tenantId}`
|
|
}
|
|
|
|
export async function GET() {
|
|
const agentId = getDefaultAgentId()
|
|
const agentName = getDefaultAgentName()
|
|
|
|
const list = await oapiClient.get('/v1/oapi/super_agent/chat/conversation_list', {
|
|
page_no: 1,
|
|
page_size: 10,
|
|
agent_id: agentId,
|
|
})
|
|
|
|
const conversationId = list.data?.[0]?.conversation_id
|
|
|
|
if (!conversationId) {
|
|
const res = await oapiClient.post('/v1/oapi/super_agent/chat/create_conversation', {
|
|
agent_id: agentId,
|
|
title: 'new conversation',
|
|
conversation_type: 'REACTUS',
|
|
external_app_id: getProjectId(),
|
|
external_user_id: getUserId(),
|
|
})
|
|
|
|
return NextResponse.json(
|
|
{
|
|
code: 0,
|
|
message: 'ok',
|
|
data: {
|
|
apiBaseUrl: '/api',
|
|
agent_id: agentId,
|
|
agent_name: agentName,
|
|
conversation_id: res.conversation_id,
|
|
wssUrl: buildWssUrl(),
|
|
token: process.env.NOVA_ACCESS_KEY,
|
|
tenantId: process.env.NOVA_TENANT_ID,
|
|
},
|
|
},
|
|
{ status: 200 }
|
|
)
|
|
}
|
|
|
|
return NextResponse.json(
|
|
{
|
|
success: true,
|
|
data: {
|
|
apiBaseUrl: '/api',
|
|
agent_id: agentId,
|
|
agent_name: agentName,
|
|
conversation_id: conversationId,
|
|
wssUrl: buildWssUrl(),
|
|
token: process.env.NOVA_ACCESS_KEY,
|
|
tenantId: process.env.NOVA_TENANT_ID,
|
|
},
|
|
},
|
|
{ status: 200 }
|
|
)
|
|
}
|