pub struct ContextualPrompt<'a> { /* private fields */ }Expand description
Context-aware prompt renderer (Phase 2)
A wrapper type that combines an Expertise with a RenderContext to enable
context-aware prompt generation. Implements ToPrompt for seamless integration
with the DTO pattern.
§Examples
§Direct Usage
use llm_toolkit_expertise::{Expertise, WeightedFragment, KnowledgeFragment};
use llm_toolkit_expertise::render::{ContextualPrompt, RenderContext};
use llm_toolkit_expertise::context::TaskHealth;
let expertise = Expertise::new("rust-reviewer", "1.0")
.with_fragment(WeightedFragment::new(
KnowledgeFragment::Text("Review Rust code".to_string())
));
let prompt = ContextualPrompt::from_expertise(&expertise, RenderContext::new())
.with_task_type("security-review")
.with_task_health(TaskHealth::AtRisk)
.to_prompt();§DTO Integration
// With ToPrompt-based DTO pattern:
// #[derive(ToPrompt)]
// #[prompt(template = "Knowledge:\n{{expertise}}\n\nTask: {{task}}")]
// struct RequestDto<'a> {
// expertise: ContextualPrompt<'a>,
// task: String,
// }Implementations§
Source§impl<'a> ContextualPrompt<'a>
impl<'a> ContextualPrompt<'a>
Sourcepub fn from_expertise(expertise: &'a Expertise, context: RenderContext) -> Self
pub fn from_expertise(expertise: &'a Expertise, context: RenderContext) -> Self
Create a contextual prompt from expertise and context
§Examples
use llm_toolkit_expertise::{Expertise, WeightedFragment, KnowledgeFragment};
use llm_toolkit_expertise::render::{ContextualPrompt, RenderContext};
let expertise = Expertise::new("test", "1.0")
.with_fragment(WeightedFragment::new(
KnowledgeFragment::Text("Test".to_string())
));
let prompt = ContextualPrompt::from_expertise(&expertise, RenderContext::new());Sourcepub fn with_task_type(self, task_type: impl Into<String>) -> Self
pub fn with_task_type(self, task_type: impl Into<String>) -> Self
Set the task type
§Examples
use llm_toolkit_expertise::{Expertise, WeightedFragment, KnowledgeFragment};
use llm_toolkit_expertise::render::{ContextualPrompt, RenderContext};
let expertise = Expertise::new("test", "1.0")
.with_fragment(WeightedFragment::new(
KnowledgeFragment::Text("Test".to_string())
));
let prompt = ContextualPrompt::from_expertise(&expertise, RenderContext::new())
.with_task_type("security-review");Sourcepub fn with_user_state(self, state: impl Into<String>) -> Self
pub fn with_user_state(self, state: impl Into<String>) -> Self
Add a user state
§Examples
use llm_toolkit_expertise::{Expertise, WeightedFragment, KnowledgeFragment};
use llm_toolkit_expertise::render::{ContextualPrompt, RenderContext};
let expertise = Expertise::new("test", "1.0")
.with_fragment(WeightedFragment::new(
KnowledgeFragment::Text("Test".to_string())
));
let prompt = ContextualPrompt::from_expertise(&expertise, RenderContext::new())
.with_user_state("beginner");Sourcepub fn with_task_health(self, health: TaskHealth) -> Self
pub fn with_task_health(self, health: TaskHealth) -> Self
Set the task health
§Examples
use llm_toolkit_expertise::{Expertise, WeightedFragment, KnowledgeFragment};
use llm_toolkit_expertise::render::{ContextualPrompt, RenderContext};
use llm_toolkit_expertise::context::TaskHealth;
let expertise = Expertise::new("test", "1.0")
.with_fragment(WeightedFragment::new(
KnowledgeFragment::Text("Test".to_string())
));
let prompt = ContextualPrompt::from_expertise(&expertise, RenderContext::new())
.with_task_health(TaskHealth::AtRisk);Sourcepub fn to_prompt(&self) -> String
pub fn to_prompt(&self) -> String
Render the prompt with context
This is called automatically when using ToPrompt trait.
§Examples
use llm_toolkit_expertise::{Expertise, WeightedFragment, KnowledgeFragment};
use llm_toolkit_expertise::render::{ContextualPrompt, RenderContext};
let expertise = Expertise::new("test", "1.0")
.with_fragment(WeightedFragment::new(
KnowledgeFragment::Text("Test content".to_string())
));
let prompt = ContextualPrompt::from_expertise(&expertise, RenderContext::new())
.to_prompt();
assert!(prompt.contains("Test content"));Trait Implementations§
Source§impl<'a> Clone for ContextualPrompt<'a>
impl<'a> Clone for ContextualPrompt<'a>
Source§fn clone(&self) -> ContextualPrompt<'a>
fn clone(&self) -> ContextualPrompt<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl<'a> Freeze for ContextualPrompt<'a>
impl<'a> RefUnwindSafe for ContextualPrompt<'a>
impl<'a> Send for ContextualPrompt<'a>
impl<'a> Sync for ContextualPrompt<'a>
impl<'a> Unpin for ContextualPrompt<'a>
impl<'a> UnwindSafe for ContextualPrompt<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more