feat: статья из Discover, локализация, подсказки
- Статья: заголовок + ссылка (truncate), title в URL, articleTitle в Message - Локализация Sources, Research Progress, Answer, шагов, formingAnswer - Подсказки: промпт без жёсткого примера, разнообразие, label 'Что ещё спросить' - embeddedTranslations, countryToLocale, locale инструкция для LLM Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,19 +1,40 @@
|
||||
import {
|
||||
getConfiguredModelProviders,
|
||||
isEnvOnlyMode,
|
||||
} from '@/lib/config/serverRegistry';
|
||||
import ModelRegistry from '@/lib/models/registry';
|
||||
import { NextRequest } from 'next/server';
|
||||
|
||||
export const GET = async (req: Request) => {
|
||||
export const GET = async () => {
|
||||
try {
|
||||
const registry = new ModelRegistry();
|
||||
const envOnlyMode = isEnvOnlyMode();
|
||||
const configuredProviders = getConfiguredModelProviders();
|
||||
|
||||
const registry = new ModelRegistry();
|
||||
const activeProviders = await registry.getActiveProviders();
|
||||
|
||||
const filteredProviders = activeProviders.filter((p) => {
|
||||
return !p.chatModels.some((m) => m.key === 'error');
|
||||
});
|
||||
|
||||
// env-only: если у провайдера пустой chatModels, подставляем модель из конфига
|
||||
const providers =
|
||||
envOnlyMode && configuredProviders.length > 0
|
||||
? filteredProviders.map((p) => {
|
||||
if (p.chatModels.length > 0) return p;
|
||||
const configProvider = configuredProviders.find((c) => c.id === p.id);
|
||||
const fallbackChat =
|
||||
(configProvider?.chatModels?.length ?? 0) > 0
|
||||
? configProvider!.chatModels
|
||||
: [{ key: 'gpt-4', name: 'gpt-4' }];
|
||||
return { ...p, chatModels: fallbackChat };
|
||||
})
|
||||
: filteredProviders;
|
||||
|
||||
return Response.json(
|
||||
{
|
||||
providers: filteredProviders,
|
||||
providers,
|
||||
envOnlyMode: envOnlyMode,
|
||||
},
|
||||
{
|
||||
status: 200,
|
||||
@@ -33,6 +54,10 @@ export const GET = async (req: Request) => {
|
||||
};
|
||||
|
||||
export const POST = async (req: NextRequest) => {
|
||||
if (isEnvOnlyMode()) {
|
||||
return Response.json({ message: 'Not available.' }, { status: 405 });
|
||||
}
|
||||
|
||||
try {
|
||||
const body = await req.json();
|
||||
const { type, name, config } = body;
|
||||
@@ -49,7 +74,6 @@ export const POST = async (req: NextRequest) => {
|
||||
}
|
||||
|
||||
const registry = new ModelRegistry();
|
||||
|
||||
const newProvider = await registry.addProvider(type, name, config);
|
||||
|
||||
return Response.json(
|
||||
|
||||
Reference in New Issue
Block a user