Perplexica/src/routes/images.ts

38 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-04-09 16:21:05 +05:30
import express from 'express';
2024-04-20 09:32:19 +05:30
import handleImageSearch from '../agents/imageSearchAgent';
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
import { getAvailableProviders } from '../lib/providers';
import { getChatModel, getChatModelProvider } from '../config';
2024-04-09 16:21:05 +05:30
const router = express.Router();
router.post('/', async (req, res) => {
try {
const { query, chat_history } = req.body;
const models = await getAvailableProviders();
const provider = getChatModelProvider();
const chatModel = getChatModel();
let llm: BaseChatModel | undefined;
if (models[provider] && models[provider][chatModel]) {
llm = models[provider][chatModel] as BaseChatModel | undefined;
}
if (!llm) {
res.status(500).json({ message: 'Invalid LLM model selected' });
return;
}
2024-04-09 16:21:05 +05:30
2024-04-20 09:32:19 +05:30
const images = await handleImageSearch({ query, chat_history }, llm);
2024-04-09 16:21:05 +05:30
res.status(200).json({ images });
} catch (err) {
res.status(500).json({ message: 'An error has occurred.' });
console.log(err.message);
}
});
export default router;