AI podcast maker performance optimizations
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
import { ResearchConfig, DateRange } from "../../../services/blogWriterApi";
|
||||
import { CreateProjectPayload, Knobs } from "../types";
|
||||
|
||||
export const DEFAULT_KNOBS: Knobs = {
|
||||
voice_emotion: "neutral",
|
||||
voice_speed: 1,
|
||||
resolution: "720p",
|
||||
scene_length_target: 45,
|
||||
sample_rate: 24000,
|
||||
bitrate: "standard",
|
||||
};
|
||||
|
||||
export const allowedDateRanges: DateRange[] = [
|
||||
"last_week",
|
||||
"last_month",
|
||||
"last_3_months",
|
||||
"last_6_months",
|
||||
"last_year",
|
||||
"all_time",
|
||||
];
|
||||
|
||||
export const sanitizeExaConfig = (
|
||||
exa?: CreateProjectPayload["knobs"] & any & { exa_suggested_config?: any } | any
|
||||
): ResearchConfig | undefined => {
|
||||
if (!exa) return undefined;
|
||||
const cfg = exa as {
|
||||
exa_search_type?: "auto" | "keyword" | "neural";
|
||||
exa_category?: string;
|
||||
exa_include_domains?: string[];
|
||||
exa_exclude_domains?: string[];
|
||||
max_sources?: number;
|
||||
include_statistics?: boolean;
|
||||
date_range?: string;
|
||||
};
|
||||
|
||||
const searchType: ResearchConfig["exa_search_type"] =
|
||||
cfg.exa_search_type && ["auto", "keyword", "neural"].includes(cfg.exa_search_type)
|
||||
? cfg.exa_search_type
|
||||
: undefined;
|
||||
|
||||
const dateRange: DateRange | undefined = cfg.date_range && allowedDateRanges.includes(cfg.date_range as DateRange)
|
||||
? (cfg.date_range as DateRange)
|
||||
: undefined;
|
||||
|
||||
return {
|
||||
provider: "exa",
|
||||
exa_search_type: searchType,
|
||||
exa_category: cfg.exa_category,
|
||||
exa_include_domains: cfg.exa_include_domains,
|
||||
exa_exclude_domains: cfg.exa_exclude_domains,
|
||||
max_sources: cfg.max_sources,
|
||||
include_statistics: cfg.include_statistics,
|
||||
date_range: dateRange,
|
||||
};
|
||||
};
|
||||
|
||||
export const announceError = (setAnnouncement: (msg: string) => void, error: unknown) => {
|
||||
const message = error instanceof Error ? error.message : "Unexpected error";
|
||||
setAnnouncement(message);
|
||||
};
|
||||
|
||||
export const getStepLabel = (step: string | null): string => {
|
||||
switch (step) {
|
||||
case "analysis":
|
||||
return "Analysis";
|
||||
case "research":
|
||||
return "Research";
|
||||
case "script":
|
||||
return "Script Editing";
|
||||
case "render":
|
||||
return "Rendering";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user