From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7.5 KiB
7.5 KiB
Architecture Diagram
This diagram illustrates the architecture and component relationships of the CodeXchange AI application.
Note: For detailed information about the CI/CD pipeline, see CI/CD Pipeline Architecture.
Application Flow Diagram
graph TD
%% Main Entry Points
A[run.py] --> B[main.py]
B --> C[CodeConverterApp]
%% Core Components
C --> D[Gradio UI]
C --> E[AIModelStreamer]
C --> F[CodeExecutor]
C --> G[LanguageDetector]
C --> H[FileHandler]
%% AI Models
E --> I[OpenAI GPT]
E --> J[Anthropic Claude]
E --> K[Google Gemini]
E --> L[DeepSeek]
E --> M[GROQ]
%% Language Processing
G --> N[Language Validation]
F --> O[Code Execution]
%% File Operations
H --> P[File Upload/Download]
H --> Q[ZIP Creation]
%% Configuration
R[config.py] --> C
R --> E
R --> F
%% Template
S[template.j2] --> C
%% User Interactions
D --> T[Code Input]
D --> U[Language Selection]
D --> V[Model Selection]
D --> W[Code Conversion]
D --> X[Code Execution]
D --> Y[File Download]
%% Logging
Z[logger.py] --> C
Z --> E
Z --> F
Z --> G
Z --> H
%% Styling
style A fill:#f9d77e,stroke:#333,stroke-width:2px
style B fill:#f9d77e,stroke:#333,stroke-width:2px
style C fill:#f9d77e,stroke:#333,stroke-width:2px
style D fill:#a8d5ba,stroke:#333,stroke-width:2px
style E fill:#a8d5ba,stroke:#333,stroke-width:2px
style F fill:#a8d5ba,stroke:#333,stroke-width:2px
style G fill:#a8d5ba,stroke:#333,stroke-width:2px
style H fill:#a8d5ba,stroke:#333,stroke-width:2px
style I fill:#ffb6c1,stroke:#333,stroke-width:2px
style J fill:#ffb6c1,stroke:#333,stroke-width:2px
style K fill:#ffb6c1,stroke:#333,stroke-width:2px
style L fill:#ffb6c1,stroke:#333,stroke-width:2px
style M fill:#ffb6c1,stroke:#333,stroke-width:2px
style R fill:#d0e0e3,stroke:#333,stroke-width:2px
style S fill:#d0e0e3,stroke:#333,stroke-width:2px
style Z fill:#d0e0e3,stroke:#333,stroke-width:2px
Component Interaction Sequence
sequenceDiagram
participant User
participant UI as Gradio UI
participant App as CodeConverterApp
participant AI as AIModelStreamer
participant Executor as CodeExecutor
participant Detector as LanguageDetector
participant Files as FileHandler
User->>UI: Enter Source Code
User->>UI: Select Source Language
User->>UI: Select Target Language
User->>UI: Select AI Model
User->>UI: Click Convert
UI->>App: Request Code Conversion
App->>Detector: Validate Source Language
Detector-->>App: Validation Result
App->>App: Create Prompt from Template
App->>AI: Send Prompt to Selected Model
AI-->>App: Stream Converted Code
App-->>UI: Display Converted Code
User->>UI: Click Run Original
UI->>App: Request Code Execution
App->>Executor: Execute Original Code
Executor-->>App: Execution Result
App-->>UI: Display Execution Result
User->>UI: Click Run Converted
UI->>App: Request Code Execution
App->>Executor: Execute Converted Code
Executor-->>App: Execution Result
App-->>UI: Display Execution Result
User->>UI: Click Download
UI->>App: Request Download
App->>Files: Create ZIP with Files
Files-->>App: ZIP File
App-->>UI: Provide Download Link
UI-->>User: Download Files
Class Diagram
classDiagram
class CodeConverterApp {
-AIModelStreamer ai_streamer
-CodeExecutor executor
-LanguageDetector detector
-FileHandler file_handler
-GradioInterface demo
+__init__()
+_setup_environment()
+_initialize_components()
+_create_gradio_interface()
+convert_code()
+execute_code()
+download_files()
+run()
}
class AIModelStreamer {
-OpenAI openai
-Anthropic claude
-OpenAI deepseek
-OpenAI groq
-GenerativeModel gemini
+__init__()
+stream_gpt()
+stream_claude()
+stream_gemini()
+stream_deepseek()
+stream_groq()
+stream_completion()
}
class CodeExecutor {
-dict executors
+__init__()
+execute()
+execute_python()
+execute_javascript()
+execute_java()
+execute_cpp()
+execute_julia()
+execute_go()
+execute_ruby()
+execute_swift()
+execute_rust()
+execute_csharp()
+execute_typescript()
+execute_r()
+execute_perl()
+execute_lua()
+execute_php()
+execute_kotlin()
+execute_sql()
}
class LanguageDetector {
+detect_python()
+detect_javascript()
+detect_java()
+detect_cpp()
+detect_julia()
+detect_go()
+detect_ruby()
+detect_swift()
+detect_rust()
+detect_csharp()
+detect_typescript()
+detect_r()
+detect_perl()
+detect_lua()
+detect_php()
+detect_kotlin()
+detect_sql()
+validate_language()
}
class FileHandler {
+create_readme()
+create_zip()
+handle_upload()
+handle_download()
}
CodeConverterApp --> AIModelStreamer
CodeConverterApp --> CodeExecutor
CodeConverterApp --> LanguageDetector
CodeConverterApp --> FileHandler
Supported Languages and Models
graph LR
subgraph "AI Models"
M1[GPT]
M2[Claude]
M3[Gemini]
M4[DeepSeek]
M5[GROQ]
end
subgraph "Supported Languages"
L1[Python]
L2[JavaScript]
L3[Java]
L4[C++]
L5[Julia]
L6[Go]
L7[Ruby]
L8[Swift]
L9[Rust]
L10[C#]
L11[TypeScript]
L12[R]
L13[Perl]
L14[Lua]
L15[PHP]
L16[Kotlin]
L17[SQL]
end
subgraph "Fully Implemented"
L1
L2
L3
L4
L5
L6
end
subgraph "Template Ready"
L7
L8
L9
L10
L11
L12
L13
L14
L15
L16
L17
end
style M1 fill:#ffb6c1,stroke:#333,stroke-width:2px
style M2 fill:#ffb6c1,stroke:#333,stroke-width:2px
style M3 fill:#ffb6c1,stroke:#333,stroke-width:2px
style M4 fill:#ffb6c1,stroke:#333,stroke-width:2px
style M5 fill:#ffb6c1,stroke:#333,stroke-width:2px
style L1 fill:#a8d5ba,stroke:#333,stroke-width:2px
style L2 fill:#a8d5ba,stroke:#333,stroke-width:2px
style L3 fill:#a8d5ba,stroke:#333,stroke-width:2px
style L4 fill:#a8d5ba,stroke:#333,stroke-width:2px
style L5 fill:#a8d5ba,stroke:#333,stroke-width:2px
style L6 fill:#a8d5ba,stroke:#333,stroke-width:2px
style L7 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L8 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L9 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L10 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L11 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L12 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L13 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L14 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L15 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L16 fill:#d0e0e3,stroke:#333,stroke-width:2px
style L17 fill:#d0e0e3,stroke:#333,stroke-width:2px