Thinking Mode Filter, SkillFormat Strategy, Persönlichkeitsanpassung funktioniert

This commit is contained in:
Sithies
2026-03-17 18:11:31 +01:00
parent 0190089c90
commit 389c759166
10 changed files with 167 additions and 41 deletions
+1 -1
View File
@@ -7,4 +7,4 @@ mod types;
mod traits;
pub use types::{Message, LlmRequest, LlmResponse};
pub use traits::LlmProvider;
pub use traits::{LlmProvider, SkillFormat};
+19 -3
View File
@@ -6,14 +6,30 @@
use crate::types::Result;
use crate::llm::types::{LlmRequest, LlmResponse};
/// Zentraler Trait für alle LLM-Provider.
/// Jeder Provider (LmStudio, Ollama, Mistral) implementiert diesen Trait.
/// Format für Skill-Calls das dieser Provider unterstützt.
#[derive(Debug, Clone, PartialEq)]
pub enum SkillFormat {
/// XML-Tags — funktioniert mit lokalen Modellen
/// <skill name="update_personality">...</skill>
Xml,
/// Native Tool Use — Claude, GPT-4, Mistral API
/// Strukturierter JSON-basierter Funktionsaufruf
ToolUse,
/// Skills deaktiviert — Modell folgt keinem Format zuverlässig
None,
}
#[async_trait::async_trait]
pub trait LlmProvider: Send + Sync {
/// Sendet eine Anfrage an das LLM und gibt die Antwort zurück.
async fn complete(&self, request: LlmRequest) -> Result<LlmResponse>;
/// Gibt den Namen des Providers zurück.
/// Wird für Logging und Usage-Tracking verwendet.
fn name(&self) -> &str;
/// Gibt das Skill-Format zurück das dieser Provider unterstützt.
/// Standard: Xml — für lokale Modelle.
fn skill_format(&self) -> SkillFormat {
SkillFormat::Xml
}
}