init
This commit is contained in:
70
src/services/aiService.js
Normal file
70
src/services/aiService.js
Normal file
@@ -0,0 +1,70 @@
|
||||
import api from './api'
|
||||
|
||||
// Mock responses for demo purposes since we don't have real backend/keys yet
|
||||
const mockResponses = {
|
||||
'chatgpt': "I'm ChatGPT. I can help you with code, writing, and more.",
|
||||
'gemini': "I'm Gemini. I can reason across text, code, images, and video.",
|
||||
'nana-banana': "I'm Nana Banana! Let's make something fun and creative.",
|
||||
'kling': "I'm Kling. I specialize in high-quality video generation."
|
||||
}
|
||||
|
||||
export const aiService = {
|
||||
// Send message to specific AI model
|
||||
async sendMessage(modelId, message, history = []) {
|
||||
// In a real app, this would be:
|
||||
// return api.post(`/ai/${modelId}/chat`, { message, history })
|
||||
|
||||
// Simulating API call
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
const response = mockResponses[modelId] || "I'm an AI assistant.";
|
||||
resolve({
|
||||
id: Date.now(),
|
||||
role: 'assistant',
|
||||
content: `${response} (Response to: "${message.substring(0, 20)}...")`,
|
||||
timestamp: new Date()
|
||||
})
|
||||
}, 1000 + Math.random() * 1000)
|
||||
})
|
||||
},
|
||||
|
||||
// Get available models
|
||||
async getModels() {
|
||||
// return api.get('/models')
|
||||
return [
|
||||
{ id: 'chatgpt', name: 'ChatGPT', provider: 'OpenAI' },
|
||||
{ id: 'gemini', name: 'Gemini', provider: 'Google' },
|
||||
{ id: 'nana-banana', name: 'Nana Banana', provider: 'Custom' },
|
||||
{ id: 'kling', name: 'Kling', provider: 'Kling AI' }
|
||||
]
|
||||
},
|
||||
|
||||
// Run generation task
|
||||
async runGeneration(payload) {
|
||||
const response = await api.post('/generations/_run', payload)
|
||||
return response.data
|
||||
},
|
||||
|
||||
// Get generation status
|
||||
async getGenerationStatus(id) {
|
||||
const response = await api.get(`/generations/${id}`)
|
||||
return response.data
|
||||
},
|
||||
|
||||
// Get generations history
|
||||
async getGenerations(limit, offset, characterId) {
|
||||
const params = { limit, offset }
|
||||
if (characterId) params.character_id = characterId
|
||||
const response = await api.get('/generations', { params })
|
||||
return response.data
|
||||
},
|
||||
|
||||
// Improve prompt using assistant
|
||||
async improvePrompt(prompt, linkedAssets = []) {
|
||||
const response = await api.post('/generations/prompt-assistant', {
|
||||
prompt,
|
||||
linked_assets: linkedAssets
|
||||
})
|
||||
return response.data
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user