# halimmwn/python-for-genai-sem7 architecture

> Architecture diagram of the GitHub repository halimmwn/python-for-genai-sem7, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/halimmwn/python-for-genai-sem7
- Repository: https://github.com/halimmwn/python-for-genai-sem7

## Overview

This repository is a set of practical exercises for learning Python for Generative AI, not a single application. The main learner workflow is to choose and run a chapter example, provide code or a prompt where needed, and inspect printed results or a service response. The material progresses from Python foundations and data handling to LLM APIs and prompt techniques, then embeddings and retrieval. The graph also shows the internal embedding-to-vector-search layer. Several branches are represented by their exact directories because their individual source was not sampled; those links are therefore limited to documented or directly evidenced behavior.

Main entry points: [`Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.4 Semantic Search - Full Pipeline/8.4.1 - SemanticSearch.py`](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.4%20Semantic%20Search%20-%20Full%20Pipeline/8.4.1%20-%20SemanticSearch.py) (In-memory vector store), [`Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.6 Evaluating Retrieval Quality/8.6.1-EvaluatingRetrievalQuality.py`](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.6%20Evaluating%20Retrieval%20Quality/8.6.1-EvaluatingRetrievalQuality.py) (Retrieval evaluation), [`Bab_02_LLM APIs & Prompting/Module - 06 - OpenAI & Anthropic APIs`](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2006%20-%20OpenAI%20%26%20Anthropic%20APIs) (LLM API examples), [`Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.2 Generating Embedding`](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.2%20Generating%20Embedding) (Embedding examples)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_foundations["Python foundations"]
  node_python_basics["Python basics"]
  node_data_structures["Data structures"]
  node_oop_modules["OOP and modules"]
  node_files_async["Files and async"]
end

subgraph group_data["Data handling"]
  node_data_analysis["Data analysis"]
end

subgraph group_llm["LLM APIs"]
  node_api_examples["LLM API examples"]
end

subgraph group_prompts["Prompt engineering"]
  node_prompt_methods["Prompt methods"]
  node_prompt_provider["Prompt API exercise<br/>[7.8.1 Excercise.py]"]
end

subgraph group_retrieval["Embeddings and retrieval"]
  node_embedding_examples["Embedding examples"]
  node_chunking["Text chunking"]
  node_embedding_helper["Embedding helper"]
  node_vector_store["In-memory vector store"]
  node_retrieval_eval["Retrieval evaluation"]
  node_advanced_retrieval["Extended retrieval<br/>[8.8.1-Exercise.py]"]
end

node_learner(("Learner"))
node_provider_services{{"Model providers"}}
node_embedding_service{{"Embedding provider"}}
node_exercise_output["Exercise output"]

node_learner -->|"runs examples"| node_python_basics
node_learner -->|"runs examples"| node_data_structures
node_learner -->|"runs examples"| node_oop_modules
node_learner -->|"runs examples"| node_files_async
node_learner -->|"runs examples"| node_data_analysis
node_learner -->|"runs examples"| node_api_examples
node_learner -->|"runs examples"| node_prompt_methods
node_learner -->|"runs examples"| node_embedding_examples
node_learner -->|"runs example"| node_chunking
node_learner -->|"runs example"| node_retrieval_eval
node_learner -->|"runs exercise"| node_advanced_retrieval
node_python_basics -->|"prints results"| node_exercise_output
node_data_structures -->|"prints results"| node_exercise_output
node_oop_modules -->|"prints results"| node_exercise_output
node_files_async -->|"prints results"| node_exercise_output
node_data_analysis -->|"prints results"| node_exercise_output
node_api_examples -->|"sends requests"| node_provider_services
node_api_examples -->|"prints responses"| node_exercise_output
node_prompt_provider -->|"sends messages"| node_provider_services
node_prompt_provider -->|"prints responses"| node_exercise_output
node_learner -->|"runs exercise"| node_prompt_provider
node_embedding_examples -->|"requests embeddings"| node_embedding_service
node_embedding_examples -->|"prints vectors"| node_exercise_output
node_vector_store -->|"embeds documents"| node_embedding_helper
node_vector_store -->|"embeds queries"| node_embedding_helper
node_vector_store -->|"requests embeddings"| node_embedding_service
node_retrieval_eval -->|"imports and indexes"| node_vector_store
node_retrieval_eval -->|"searches cases"| node_vector_store
node_retrieval_eval -->|"prints metrics"| node_exercise_output
node_advanced_retrieval -->|"requests embeddings"| node_embedding_service

click node_python_basics "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-01-Python%20Foundations"
click node_data_structures "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-02-Data%20Structures%20%26%20Comprehensions"
click node_oop_modules "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-03-OOP%20%26%20Modules"
click node_files_async "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-04-File"
click node_data_analysis "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-05-Python%20For%20Data"
click node_api_examples "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2006%20-%20OpenAI%20%26%20Anthropic%20APIs"
click node_prompt_methods "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2007%20-%20Prompt%20Enggineering"
click node_prompt_provider "https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2007%20-%20Prompt%20Enggineering/7.8%20Excercise/7.8.1%20Excercise.py"
click node_embedding_examples "https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.2%20Generating%20Embedding"
click node_chunking "https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.5%20Chunking%20Text%20for%20Embedding/8.5.1-ChunkingTextForEmbedding.py"
click node_embedding_helper "https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.4%20Semantic%20Search%20-%20Full%20Pipeline/8.4.1%20-%20SemanticSearch.py"
click node_vector_store "https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.4%20Semantic%20Search%20-%20Full%20Pipeline/8.4.1%20-%20SemanticSearch.py"
click node_retrieval_eval "https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.6%20Evaluating%20Retrieval%20Quality/8.6.1-EvaluatingRetrievalQuality.py"
click node_advanced_retrieval "https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.8%20Exercise/8.8.1-Exercise.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_python_basics,node_data_structures,node_oop_modules,node_files_async toneBlue
class node_data_analysis toneAmber
class node_api_examples toneMint
class node_prompt_methods,node_prompt_provider toneRose
class node_embedding_examples,node_chunking,node_embedding_helper,node_vector_store,node_retrieval_eval,node_advanced_retrieval,node_learner,node_provider_services,node_embedding_service,node_exercise_output toneIndigo
```

## Components

### Python foundations

- [Python basics](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-01-Python%20Foundations): `Bab_01_Python Core for AI/Module-01-Python Foundations`
- [Data structures](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-02-Data%20Structures%20%26%20Comprehensions): `Bab_01_Python Core for AI/Module-02-Data Structures & Comprehensions`
- [OOP and modules](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-03-OOP%20%26%20Modules): `Bab_01_Python Core for AI/Module-03-OOP & Modules`
- [Files and async](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-04-File): `Bab_01_Python Core for AI/Module-04-File`

### Data handling

- [Data analysis](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_01_Python%20Core%20for%20AI/Module-05-Python%20For%20Data): `Bab_01_Python Core for AI/Module-05-Python For Data`

### LLM APIs

- [LLM API examples](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2006%20-%20OpenAI%20%26%20Anthropic%20APIs): `Bab_02_LLM APIs & Prompting/Module - 06 - OpenAI & Anthropic APIs`

### Prompt engineering

- [Prompt methods](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2007%20-%20Prompt%20Enggineering): `Bab_02_LLM APIs & Prompting/Module - 07 - Prompt Enggineering`
- [Prompt API exercise](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2007%20-%20Prompt%20Enggineering/7.8%20Excercise/7.8.1%20Excercise.py): `Bab_02_LLM APIs & Prompting/Module - 07 - Prompt Enggineering/7.8 Excercise/7.8.1 Excercise.py`

### Embeddings and retrieval

- [Embedding examples](https://github.com/halimmwn/python-for-genai-sem7/tree/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.2%20Generating%20Embedding): `Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.2 Generating Embedding`
- [Text chunking](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.5%20Chunking%20Text%20for%20Embedding/8.5.1-ChunkingTextForEmbedding.py): `Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.5 Chunking Text for Embedding/8.5.1-ChunkingTextForEmbedding.py`
- [Embedding helper](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.4%20Semantic%20Search%20-%20Full%20Pipeline/8.4.1%20-%20SemanticSearch.py): `Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.4 Semantic Search - Full Pipeline/8.4.1 - SemanticSearch.py`
- [In-memory vector store](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.4%20Semantic%20Search%20-%20Full%20Pipeline/8.4.1%20-%20SemanticSearch.py): `Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.4 Semantic Search - Full Pipeline/8.4.1 - SemanticSearch.py`
- [Retrieval evaluation](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.6%20Evaluating%20Retrieval%20Quality/8.6.1-EvaluatingRetrievalQuality.py): `Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.6 Evaluating Retrieval Quality/8.6.1-EvaluatingRetrievalQuality.py`
- [Extended retrieval](https://github.com/halimmwn/python-for-genai-sem7/blob/main/Bab_02_LLM%20APIs%20%26%20Prompting/Module%20-%2008%20-%20Embeddings%20%26%20Semantic%20Search/8.8%20Exercise/8.8.1-Exercise.py): `Bab_02_LLM APIs & Prompting/Module - 08 - Embeddings & Semantic Search/8.8 Exercise/8.8.1-Exercise.py`

### Other components

- **Learner**
- **Model providers**
- **Embedding provider**
- **Exercise output**

## Connections

- Learner → Python basics: runs examples
- Learner → Data structures: runs examples
- Learner → OOP and modules: runs examples
- Learner → Files and async: runs examples
- Learner → Data analysis: runs examples
- Learner → LLM API examples: runs examples
- Learner → Prompt methods: runs examples
- Learner → Embedding examples: runs examples
- Learner → Text chunking: runs example
- Learner → Retrieval evaluation: runs example
- Learner → Extended retrieval: runs exercise
- Python basics → Exercise output: prints results
- Data structures → Exercise output: prints results
- OOP and modules → Exercise output: prints results
- Files and async → Exercise output: prints results
- Data analysis → Exercise output: prints results
- LLM API examples → Model providers: sends requests
- LLM API examples → Exercise output: prints responses
- Prompt API exercise → Model providers: sends messages
- Prompt API exercise → Exercise output: prints responses
- Learner → Prompt API exercise: runs exercise
- Embedding examples → Embedding provider: requests embeddings
- Embedding examples → Exercise output: prints vectors
- In-memory vector store → Embedding helper: embeds documents
- In-memory vector store → Embedding helper: embeds queries
- In-memory vector store → Embedding provider: requests embeddings
- Retrieval evaluation → In-memory vector store: imports and indexes
- Retrieval evaluation → In-memory vector store: searches cases
- Retrieval evaluation → Exercise output: prints metrics
- Extended retrieval → Embedding provider: requests embeddings
