|
export namespace ModuleRegistry { |
|
export enum ModuleType { |
|
STT = "stt", |
|
LLM = "llm", |
|
V2V = "v2v", |
|
TTS = "tts", |
|
TOOL = "tool", |
|
} |
|
|
|
export interface Module { |
|
name: string; |
|
type: ModuleType; |
|
label: string; |
|
} |
|
|
|
export type NonToolModuleType = Exclude<ModuleType, ModuleType.TOOL> |
|
export type NonToolModule = Module & { type: NonToolModuleType }; |
|
export enum Modalities { |
|
Video = "video", |
|
Audio = "audio", |
|
Text = "text" |
|
} |
|
export interface LLMModuleOptions { |
|
inputModalities: Modalities[] |
|
} |
|
export interface V2VModuleOptions { |
|
inputModalities: Modalities[] |
|
} |
|
export interface ToolModuleOptions { |
|
outputContentText?: boolean |
|
} |
|
|
|
export interface LLMModule extends Module { |
|
type: ModuleType.LLM; |
|
options: LLMModuleOptions; |
|
} |
|
export interface V2VModule extends Module { |
|
type: ModuleType.V2V, |
|
options: LLMModuleOptions |
|
} |
|
export interface ToolModule extends Module { |
|
type: ModuleType.TOOL, |
|
options: ToolModuleOptions |
|
} |
|
} |
|
|
|
|
|
|
|
export const ModuleTypeLabels: Record<ModuleRegistry.NonToolModuleType, string> = { |
|
[ModuleRegistry.ModuleType.STT]: "STT (Speech to Text)", |
|
[ModuleRegistry.ModuleType.LLM]: "LLM (Large Language Model)", |
|
[ModuleRegistry.ModuleType.TTS]: "TTS (Text to Speech)", |
|
[ModuleRegistry.ModuleType.V2V]: "LLM v2v (V2V Large Language Model)", |
|
}; |
|
|
|
export const sttModuleRegistry: Record<string, ModuleRegistry.Module> = { |
|
deepgram_asr_python: { |
|
name: "deepgram_asr_python", |
|
type: ModuleRegistry.ModuleType.STT, |
|
label: "Deepgram STT", |
|
}, |
|
transcribe_asr_python: { |
|
name: "transcribe_asr_python", |
|
type: ModuleRegistry.ModuleType.STT, |
|
label: "Transcribe STT", |
|
} |
|
} |
|
|
|
export const llmModuleRegistry: Record<string, ModuleRegistry.LLMModule> = { |
|
openai_chatgpt_python: { |
|
name: "openai_chatgpt_python", |
|
type: ModuleRegistry.ModuleType.LLM, |
|
label: "OpenAI ChatGPT", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Text] } |
|
}, |
|
dify_python: { |
|
name: "dify_python", |
|
type: ModuleRegistry.ModuleType.LLM, |
|
label: "Dify Chat Bot", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Text] } |
|
}, |
|
coze_python_async: { |
|
name: "coze_python_async", |
|
type: ModuleRegistry.ModuleType.LLM, |
|
label: "Coze Chat Bot", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Text] } |
|
}, |
|
gemini_llm_python: { |
|
name: "gemini_llm_python", |
|
type: ModuleRegistry.ModuleType.LLM, |
|
label: "Gemini LLM", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Text] } |
|
}, |
|
bedrock_llm_python: { |
|
name: "bedrock_llm_python", |
|
type: ModuleRegistry.ModuleType.LLM, |
|
label: "Bedrock LLM", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Text, ModuleRegistry.Modalities.Video] } |
|
}, |
|
} |
|
|
|
export const ttsModuleRegistry: Record<string, ModuleRegistry.Module> = { |
|
azure_tts: { |
|
name: "azure_tts", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Azure TTS", |
|
}, |
|
cartesia_tts: { |
|
name: "cartesia_tts", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Cartesia TTS", |
|
}, |
|
cosy_tts_python: { |
|
name: "cosy_tts_python", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Cosy TTS", |
|
}, |
|
elevenlabs_tts_python: { |
|
name: "elevenlabs_tts_python", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Elevenlabs TTS", |
|
}, |
|
fish_audio_tts: { |
|
name: "fish_audio_tts", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Fish Audio TTS", |
|
}, |
|
minimax_tts_python: { |
|
name: "minimax_tts_python", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Minimax TTS", |
|
}, |
|
polly_tts: { |
|
name: "polly_tts", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Polly TTS", |
|
}, |
|
neuphonic_tts: { |
|
name: "neuphonic_tts", |
|
type: ModuleRegistry.ModuleType.TTS, |
|
label: "Neuphonic TTS", |
|
} |
|
} |
|
|
|
export const v2vModuleRegistry: Record<string, ModuleRegistry.V2VModule> = { |
|
openai_v2v_python: { |
|
name: "openai_v2v_python", |
|
type: ModuleRegistry.ModuleType.V2V, |
|
label: "OpenAI Realtime", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Audio] } |
|
}, |
|
gemini_v2v_python: { |
|
name: "gemini_v2v_python", |
|
type: ModuleRegistry.ModuleType.V2V, |
|
label: "Gemini Realtime", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Video, ModuleRegistry.Modalities.Audio] } |
|
}, |
|
glm_v2v_python: { |
|
name: "glm_v2v_python", |
|
type: ModuleRegistry.ModuleType.V2V, |
|
label: "GLM Realtime", |
|
options: { inputModalities: [ModuleRegistry.Modalities.Audio] } |
|
} |
|
} |
|
|
|
export const toolModuleRegistry: Record<string, ModuleRegistry.ToolModule> = { |
|
vision_analyze_tool_python: { |
|
name: "vision_analyze_tool_python", |
|
type: ModuleRegistry.ModuleType.TOOL, |
|
label: "Vision Analyze Tool", |
|
options: {} |
|
}, |
|
weatherapi_tool_python: { |
|
name: "weatherapi_tool_python", |
|
type: ModuleRegistry.ModuleType.TOOL, |
|
label: "WeatherAPI Tool", |
|
options: {} |
|
}, |
|
bingsearch_tool_python: { |
|
name: "bingsearch_tool_python", |
|
type: ModuleRegistry.ModuleType.TOOL, |
|
label: "BingSearch Tool", |
|
options: {} |
|
}, |
|
vision_tool_python: { |
|
name: "vision_tool_python", |
|
type: ModuleRegistry.ModuleType.TOOL, |
|
label: "Vision Tool", |
|
options: {} |
|
}, |
|
openai_image_generate_tool: { |
|
name: "openai_image_generate_tool", |
|
type: ModuleRegistry.ModuleType.TOOL, |
|
label: "OpenAI Image Generate Tool", |
|
options: { outputContentText: true } |
|
}, |
|
computer_tool_python: { |
|
name: "computer_tool_python", |
|
type: ModuleRegistry.ModuleType.TOOL, |
|
label: "Computer Tool", |
|
options: { outputContentText: true } |
|
}, |
|
} |
|
|
|
export const moduleRegistry: Record<string, ModuleRegistry.Module> = { |
|
...sttModuleRegistry, |
|
...llmModuleRegistry, |
|
...ttsModuleRegistry, |
|
...v2vModuleRegistry |
|
} |
|
|
|
export const compatibleTools: Record<string, string[]> = { |
|
openai_chatgpt_python: ["vision_tool_python", "weatherapi_tool_python", "bingsearch_tool_python", "openai_image_generate_tool", "computer_tool_python"], |
|
openai_v2v_python: ["weatherapi_tool_python", "bingsearch_tool_python", "openai_image_generate_tool", "computer_tool_python"], |
|
gemini_v2v_python: ["weatherapi_tool_python", "bingsearch_tool_python", "openai_image_generate_tool", "computer_tool_python"], |
|
glm_v2v_python: ["weatherapi_tool_python", "bingsearch_tool_python", "openai_image_generate_tool", "computer_tool_python"], |
|
} |
|
|