b2605abd6a
- Added `EnableWebSearch` and `KnowledgeGroupIDs` fields to `KolGenerationSubmitRequest`. - Updated `Submit` method in `KolGenerationService` to handle new request fields. - Integrated web search and knowledge group validation based on card configuration. - Introduced caching mechanisms in `KolPackageService`, `KolPromptService`, and `KolSubscriptionAdminService` to improve performance. - Implemented knowledge context resolution in `KolGenerationWorker` to enrich prompts with relevant knowledge snippets. - Added utility functions for handling card configuration in both backend and frontend. - Created tests for knowledge extraction and rendering to ensure accuracy and reliability.
39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
import type { KolCardConfig } from "@geo/shared-types";
|
|
|
|
const DEFAULT_ALLOW_WEB_SEARCH = false;
|
|
const DEFAULT_ALLOW_USER_KNOWLEDGE = true;
|
|
|
|
function asRecord(value: unknown): Record<string, unknown> {
|
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
return {};
|
|
}
|
|
return value as Record<string, unknown>;
|
|
}
|
|
|
|
function booleanFromUnknown(value: unknown): boolean | undefined {
|
|
return typeof value === "boolean" ? value : undefined;
|
|
}
|
|
|
|
export function parseKolCardConfig(value: unknown): Required<Pick<KolCardConfig, "allow_web_search" | "allow_user_knowledge">> {
|
|
const record = asRecord(value);
|
|
return {
|
|
allow_web_search: booleanFromUnknown(record.allow_web_search) ?? DEFAULT_ALLOW_WEB_SEARCH,
|
|
allow_user_knowledge:
|
|
booleanFromUnknown(record.allow_user_knowledge) ?? DEFAULT_ALLOW_USER_KNOWLEDGE,
|
|
};
|
|
}
|
|
|
|
export function mergeKolCardConfig(base: unknown, overrides: KolCardConfig): KolCardConfig {
|
|
const record = asRecord(base);
|
|
const parsed = parseKolCardConfig(record);
|
|
|
|
return {
|
|
...record,
|
|
...overrides,
|
|
allow_web_search:
|
|
booleanFromUnknown(overrides.allow_web_search) ?? parsed.allow_web_search,
|
|
allow_user_knowledge:
|
|
booleanFromUnknown(overrides.allow_user_knowledge) ?? parsed.allow_user_knowledge,
|
|
};
|
|
}
|