Thinking Mode Filter, SkillFormat Strategy, Persönlichkeitsanpassung funktioniert
This commit is contained in:
@@ -7,4 +7,4 @@ mod types;
|
||||
mod traits;
|
||||
|
||||
pub use types::{Message, LlmRequest, LlmResponse};
|
||||
pub use traits::LlmProvider;
|
||||
pub use traits::{LlmProvider, SkillFormat};
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user