Browse Source

Add support for dedicated OpenRouter model for web_fetch

pull/7005/head
Thomas Kaul 13 hours ago
parent
commit
10f84a5a1b
  1. 21
      apps/api/src/services/fetch/fetch.service.ts
  2. 1
      libs/common/src/lib/config.ts

21
apps/api/src/services/fetch/fetch.service.ts

@ -3,6 +3,7 @@ import { PropertyService } from '@ghostfolio/api/services/property/property.serv
import {
PROPERTY_API_KEY_OPENROUTER,
PROPERTY_OPENROUTER_MODEL,
PROPERTY_OPENROUTER_MODEL_WEB_FETCH,
PROPERTY_WEB_FETCH_ROUTES
} from '@ghostfolio/common/config';
@ -80,12 +81,18 @@ export class FetchService implements OnModuleInit {
url: string;
webFetchRoute: WebFetchRoute;
}) {
const [openRouterApiKey, openRouterModel] = await Promise.all([
this.propertyService.getByKey<string>(PROPERTY_API_KEY_OPENROUTER),
this.propertyService.getByKey<string>(PROPERTY_OPENROUTER_MODEL)
]);
if (!openRouterApiKey || !openRouterModel) {
const [openRouterApiKey, openRouterModel, openRouterModelWebFetch] =
await Promise.all([
this.propertyService.getByKey<string>(PROPERTY_API_KEY_OPENROUTER),
this.propertyService.getByKey<string>(PROPERTY_OPENROUTER_MODEL),
this.propertyService.getByKey<string>(
PROPERTY_OPENROUTER_MODEL_WEB_FETCH
)
]);
const model = openRouterModelWebFetch || openRouterModel;
if (!model || !openRouterApiKey) {
return undefined;
}
@ -93,7 +100,7 @@ export class FetchService implements OnModuleInit {
const openRouterService = createOpenRouter({ apiKey: openRouterApiKey });
const { sources, text } = await generateText({
model: openRouterService.chat(openRouterModel),
model: openRouterService.chat(model),
prompt: [
'You have access to a web_fetch tool. You MUST call it to retrieve the URL below, do not answer from prior knowledge.',
'Return the fetched response body exactly as received: raw body only, no commentary, no Markdown, and no code fences.',

1
libs/common/src/lib/config.ts

@ -252,6 +252,7 @@ export const PROPERTY_IS_DATA_GATHERING_ENABLED = 'IS_DATA_GATHERING_ENABLED';
export const PROPERTY_IS_READ_ONLY_MODE = 'IS_READ_ONLY_MODE';
export const PROPERTY_IS_USER_SIGNUP_ENABLED = 'IS_USER_SIGNUP_ENABLED';
export const PROPERTY_OPENROUTER_MODEL = 'OPENROUTER_MODEL';
export const PROPERTY_OPENROUTER_MODEL_WEB_FETCH = 'OPENROUTER_MODEL_WEB_FETCH';
export const PROPERTY_SLACK_COMMUNITY_USERS = 'SLACK_COMMUNITY_USERS';
export const PROPERTY_STRIPE_CONFIG = 'STRIPE_CONFIG';
export const PROPERTY_SYSTEM_MESSAGE = 'SYSTEM_MESSAGE';

Loading…
Cancel
Save