Spaces:
Runtime error
Runtime error
| import { api } from "encore.dev/api"; | |
| import { secret } from "encore.dev/config"; | |
| import log from "encore.dev/log"; | |
| import { LLMProviderService } from "../lib/llm-provider"; | |
| import type { ModelInfo, LLMProvider } from "../lib/types"; | |
| const llmProvider = secret("LLMProvider"); | |
| const ollamaBaseURL = secret("OllamaBaseURL"); | |
| const huggingFaceAPIKey = secret("HuggingFaceAPIKey"); | |
| const defaultModel = secret("DefaultModel"); | |
| function getProvider(): LLMProviderService { | |
| return new LLMProviderService({ | |
| provider: llmProvider() as LLMProvider, | |
| ollamaBaseURL: ollamaBaseURL(), | |
| huggingFaceAPIKey: huggingFaceAPIKey(), | |
| defaultModel: defaultModel(), | |
| }); | |
| } | |
| export interface ModelsResponse { | |
| provider: string; | |
| models: ModelInfo[]; | |
| } | |
| // Lists all available LLM models. | |
| export const listModels = api<void, ModelsResponse>( | |
| { expose: true, method: "GET", path: "/models" }, | |
| async () => { | |
| log.info("Models list requested"); | |
| const provider = getProvider(); | |
| const models = await provider.listModels(); | |
| log.info("Models listed", { count: models.length }); | |
| return { | |
| provider: provider.getProvider(), | |
| models, | |
| }; | |
| } | |
| ); | |