Add AI review workflow for Paperless documents
This commit is contained in:
@@ -28,7 +28,16 @@ const configSchema = z.object({
|
||||
ntfyTopic: z.string().min(1).optional(),
|
||||
ntfyToken: z.string().optional(),
|
||||
ntfyPriority: z.string().optional(),
|
||||
icalSecret: z.string().optional()
|
||||
icalSecret: z.string().optional(),
|
||||
aiEnabled: z.coerce.boolean().default(false),
|
||||
aiProvider: z.enum(["openai", "openai-compatible", "gemini"]).optional(),
|
||||
aiBaseUrl: z.string().url().optional(),
|
||||
aiModel: z.string().min(1).optional(),
|
||||
aiApiKey: z.string().min(1).optional(),
|
||||
aiSystemPrompt: z.string().optional(),
|
||||
aiTimeoutSeconds: z.coerce.number().min(5).max(300).default(60),
|
||||
aiMaxTokens: z.coerce.number().min(256).max(16000).default(2000),
|
||||
paperlessWebhookSecret: z.string().min(10).optional()
|
||||
});
|
||||
|
||||
function parseBoolean(value: string | undefined, fallback: boolean): boolean {
|
||||
@@ -72,7 +81,16 @@ const rawConfig = {
|
||||
ntfyTopic: readEnv("NTFY_TOPIC"),
|
||||
ntfyToken: readEnv("NTFY_TOKEN"),
|
||||
ntfyPriority: readEnv("NTFY_PRIORITY"),
|
||||
icalSecret: readEnv("ICAL_SECRET")
|
||||
icalSecret: readEnv("ICAL_SECRET"),
|
||||
aiEnabled: parseBoolean(readEnv("AI_ENABLED"), false),
|
||||
aiProvider: readEnv("AI_PROVIDER"),
|
||||
aiBaseUrl: readEnv("AI_BASE_URL"),
|
||||
aiModel: readEnv("AI_MODEL"),
|
||||
aiApiKey: readEnv("AI_API_KEY"),
|
||||
aiSystemPrompt: readEnv("AI_SYSTEM_PROMPT"),
|
||||
aiTimeoutSeconds: readEnv("AI_TIMEOUT_SECONDS"),
|
||||
aiMaxTokens: readEnv("AI_MAX_TOKENS"),
|
||||
paperlessWebhookSecret: readEnv("PAPERLESS_WEBHOOK_SECRET")
|
||||
};
|
||||
|
||||
export type AppConfig = z.infer<typeof configSchema>;
|
||||
|
||||
Reference in New Issue
Block a user