diff --git a/web/pages/Assistants.tsx b/web/pages/Assistants.tsx index c11aa44..cb68a94 100644 --- a/web/pages/Assistants.tsx +++ b/web/pages/Assistants.tsx @@ -2,9 +2,8 @@ import React, { useState, useEffect, useRef } from 'react'; import { Plus, Search, Play, Copy, Trash2, Edit2, Mic, MessageSquare, Save, Video, PhoneOff, Camera, ArrowLeftRight, Send, Phone, MoreHorizontal, Rocket, AlertTriangle, PhoneCall, CameraOff, Image, Images, CloudSun, Calendar, TrendingUp, Coins, Wrench, Globe, Terminal, X, ClipboardCheck, Sparkles, Volume2, Timer, ChevronDown, Link as LinkIcon, Database, Server, Zap, ExternalLink, Key, BrainCircuit, Ear, Book, Filter } from 'lucide-react'; import { Button, Input, Card, Badge, Drawer, Dialog } from '../components/UI'; -import { mockLLMModels, mockASRModels } from '../services/mockData'; -import { Assistant, KnowledgeBase, TabValue, Voice } from '../types'; -import { createAssistant, deleteAssistant, fetchAssistantRuntimeConfig, fetchAssistants, fetchKnowledgeBases, fetchVoices, updateAssistant as updateAssistantApi } from '../services/backendApi'; +import { ASRModel, Assistant, KnowledgeBase, LLMModel, TabValue, Voice } from '../types'; +import { createAssistant, deleteAssistant, fetchASRModels, fetchAssistantRuntimeConfig, fetchAssistants, fetchKnowledgeBases, fetchLLMModels, fetchVoices, updateAssistant as updateAssistantApi } from '../services/backendApi'; interface ToolItem { id: string; @@ -19,6 +18,8 @@ export const AssistantsPage: React.FC = () => { const [assistants, setAssistants] = useState([]); const [voices, setVoices] = useState([]); const [knowledgeBases, setKnowledgeBases] = useState([]); + const [llmModels, setLlmModels] = useState([]); + const [asrModels, setAsrModels] = useState([]); const [searchTerm, setSearchTerm] = useState(''); const [selectedId, setSelectedId] = useState(null); const [activeTab, setActiveTab] = useState(TabValue.GLOBAL); @@ -54,14 +55,18 @@ export const AssistantsPage: React.FC = () => { const loadInitialData = async () => { setIsLoading(true); try { - const [assistantList, voiceList, kbList] = await Promise.all([ + const [assistantList, voiceList, kbList, llmList, asrList] = await Promise.all([ fetchAssistants(), fetchVoices(), fetchKnowledgeBases(), + fetchLLMModels(), + fetchASRModels(), ]); setAssistants(assistantList); setVoices(voiceList); setKnowledgeBases(kbList); + setLlmModels(llmList); + setAsrModels(asrList); if (assistantList.length > 0) { setSelectedId(assistantList[0].id); } @@ -507,7 +512,7 @@ export const AssistantsPage: React.FC = () => { onChange={(e) => updateAssistant('llmModelId', e.target.value)} > - {mockLLMModels.filter(m => m.type === 'text').map(model => ( + {llmModels.filter(m => m.type === 'text').map(model => ( ))} @@ -556,7 +561,7 @@ export const AssistantsPage: React.FC = () => { onChange={(e) => updateAssistant('embeddingModelId', e.target.value)} > - {mockLLMModels.filter(m => m.type === 'embedding').map(model => ( + {llmModels.filter(m => m.type === 'embedding').map(model => ( ))} @@ -576,7 +581,7 @@ export const AssistantsPage: React.FC = () => { onChange={(e) => updateAssistant('rerankModelId', e.target.value)} > - {mockLLMModels.filter(m => m.type === 'rerank').map(model => ( + {llmModels.filter(m => m.type === 'rerank').map(model => ( ))} @@ -620,7 +625,7 @@ export const AssistantsPage: React.FC = () => { onChange={(e) => updateAssistant('asrModelId', e.target.value)} > - {mockASRModels.map(model => ( + {asrModels.map(model => ( diff --git a/web/services/backendApi.ts b/web/services/backendApi.ts index e6498c8..9470736 100644 --- a/web/services/backendApi.ts +++ b/web/services/backendApi.ts @@ -202,6 +202,10 @@ export const createAssistant = async (data: Partial): Promise('/assistants', { method: 'POST', body: payload }); return mapAssistant(response);