API Referenz
Diese Dokumentation wird automatisch aus den Docstrings des Quellcodes generiert.
Core Services
RecognitionService
modul_anerkennung.services.RecognitionService
Service layer for module recognition logic.
Source code in modul_anerkennung/services.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | |
Functions
__init__(llm=None)
Initialisiert den RecognitionService.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
llm
|
LLMInterface
|
Die Schnittstelle zum LLM. Falls None, wird eine neue Instanz von LLMInterface erstellt. |
None
|
Source code in modul_anerkennung/services.py
analyze_module(text)
async
Analyzes an external module description to extract name, ECTS, and keywords.
Source code in modul_anerkennung/services.py
perform_comparison(external_text, internal_module)
async
Performs a detailed comparison between an external and an internal module.
Source code in modul_anerkennung/services.py
search_and_compare(po_id, keywords, max_ects, external_text)
async
Searches for similar internal modules and compares them to the external module.
Source code in modul_anerkennung/services.py
MCP Integration
MocogiClient
modul_anerkennung.mcp_client.MocogiClient
Ein Client für den Mocogi MCP Server, der die Kommunikation über stdio ermöglicht.
Dieser Client startet den Mocogi MCP Server als Subprozess und ermöglicht den Zugriff auf dessen Tools über eine asynchrone Schnittstelle.
Source code in modul_anerkennung/mcp_client.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | |
Functions
__aenter__()
async
Ermöglicht die Nutzung des Clients als asynchroner Kontextmanager.
Returns:
| Name | Type | Description |
|---|---|---|
MocogiClient |
Die Instanz des Clients. |
__aexit__(exc_type, exc_val, exc_tb)
async
Beendet den Client beim Verlassen des asynchronen Kontextmanagers.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
exc_type
|
Der Typ der Ausnahme, falls eine aufgetreten ist. |
required | |
exc_val
|
Der Wert der Ausnahme, falls eine aufgetreten ist. |
required | |
exc_tb
|
Der Traceback der Ausnahme, falls eine aufgetreten ist. |
required |
Source code in modul_anerkennung/mcp_client.py
__init__()
Initialisiert den MocogiClient und konfiguriert den Server-Befehl.
Falls fileno nicht unterstützt wird (z.B. in Jupyter/Colab), wird auf einen In-Memory-Client ausgewichen.
Source code in modul_anerkennung/mcp_client.py
call_tool(name, arguments=None)
async
Führt einen generischen Aufruf eines MCP-Tools aus.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Der Name des aufzurufenden Tools. |
required |
arguments
|
Dict[str, Any]
|
Die Argumente für das Tool. Standardwert ist None. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
Any |
Any
|
Das Ergebnis des Tool-Aufrufs. |
Source code in modul_anerkennung/mcp_client.py
chat_with_tools(llm_client, messages, max_iterations=5)
async
Führt einen Chat mit Tool-Unterstützung durch.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
llm_client
|
Any
|
Der LLMClient (aus llm_client Package). |
required |
messages
|
List[Dict[str, Any]]
|
Der bisherige Chat-Verlauf. |
required |
max_iterations
|
int
|
Maximale Anzahl an Tool-Call-Iterationen. Standardwert ist 5. |
5
|
Returns:
| Name | Type | Description |
|---|---|---|
str |
str
|
Die Antwort des LLM. |
Source code in modul_anerkennung/mcp_client.py
get_all_active_modules()
async
Gibt eine Liste aller aktiven Module zurück.
Returns:
| Type | Description |
|---|---|
List[Dict[str, Any]]
|
List[Dict[str, Any]]: Eine Liste aller aktiven Module. |
Source code in modul_anerkennung/mcp_client.py
get_modules_by_po(po_id)
async
Gibt alle aktiven Module für eine bestimmte Prüfungsordnung (PO) zurück.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
po_id
|
str
|
Die ID der Prüfungsordnung (z.B. 'inf_mi5'). |
required |
Returns:
| Type | Description |
|---|---|
List[Dict[str, Any]]
|
List[Dict[str, Any]]: Eine Liste von Modulen als Dictionaries. |
Source code in modul_anerkennung/mcp_client.py
get_tools_for_llm()
async
Konvertiert MCP Tools in das Format für llm_client (OpenAI/Gemini Format).
Returns:
| Type | Description |
|---|---|
List[Dict[str, Any]]
|
List[Dict[str, Any]]: Eine Liste von Tools im OpenAI-Format. |
Source code in modul_anerkennung/mcp_client.py
list_study_programs(filter='currently-active')
async
Listet alle Studiengänge der TH Köln auf.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
filter
|
str
|
Filter für die Studiengänge (z.B. 'currently-active'). Standardwert ist "currently-active". |
'currently-active'
|
Returns:
| Type | Description |
|---|---|
List[Dict[str, Any]]
|
List[Dict[str, Any]]: Eine Liste von Studiengängen als Dictionaries. |
Source code in modul_anerkennung/mcp_client.py
list_tools()
async
Listet alle verfügbaren Tools des MCP Servers auf.
Returns:
| Type | Description |
|---|---|
List[Any]
|
List[Any]: Eine Liste der verfügbaren Tools. |
Datenmodelle
ModuleAnalysis
modul_anerkennung.models.ModuleAnalysis
Bases: BaseModel
Result of an LLM analysis of an external module description.
Source code in modul_anerkennung/models.py
ComparisonReport
modul_anerkennung.models.ComparisonReport
Bases: BaseModel
Result of an LLM comparison between an external and internal module.
Source code in modul_anerkennung/models.py
Hilfsklassen
LLMInterface
modul_anerkennung.llm_interface.LLMInterface
Wrapper für den universellen LLM-Client.
Source code in modul_anerkennung/llm_interface.py
Functions
__init__(provider=None, model=None)
Initialisiert den LLM-Client.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
provider
|
str
|
Der zu verwendende Provider (z.B. "openai", "groq", "gemini"). Falls None, wird versucht, den Provider automatisch zu erkennen. |
None
|
model
|
str
|
Das zu verwendende Modell. |
None
|
Source code in modul_anerkennung/llm_interface.py
achat(messages, **kwargs)
async
Führt eine asynchrone Chat-Completion mit dem LLM aus.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
List[Dict[str, str]]
|
Nachrichtenverlauf für die LLM-Kommunikation. |
required |
**kwargs
|
Any
|
Zusätzliche Argumente für die Completion. |
{}
|
Returns: str: Antwort des LLM.
Source code in modul_anerkennung/llm_interface.py
chat(messages, **kwargs)
Führt eine Chat-Completion mit dem LLM aus.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
messages
|
List[Dict[str, str]]
|
Nachrichtenverlauf für die LLM-Kommunikation. |
required |
**kwargs
|
Any
|
Zusätzliche Argumente for die Completion. |
{}
|
Returns: str: Antwort des LLM.
Source code in modul_anerkennung/llm_interface.py
extract_json(text, model_class)
Extrahiert JSON aus einem Text und validiert es gegen eine Pydantic-Klasse.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
text
|
str
|
Der Text, der JSON enthält. |
required |
model_class
|
Type[T]
|
Die Pydantic-Klasse zur Validierung. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
T |
T
|
Die validierte Instanz der model_class. |