Co-authored-by: Sharang Parnerkar <parnerkarsharang@gmail.com> Reviewed-on: #1
36 lines
872 B
Rust
36 lines
872 B
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
/// A message in the chat history
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct ChatMessage {
|
|
pub role: String,
|
|
pub content: String,
|
|
}
|
|
|
|
/// Request body for the chat endpoint
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct ChatRequest {
|
|
pub message: String,
|
|
#[serde(default)]
|
|
pub history: Vec<ChatMessage>,
|
|
}
|
|
|
|
/// A source reference from the RAG retrieval
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct SourceReference {
|
|
pub file_path: String,
|
|
pub qualified_name: String,
|
|
pub start_line: u32,
|
|
pub end_line: u32,
|
|
pub language: String,
|
|
pub snippet: String,
|
|
pub score: f64,
|
|
}
|
|
|
|
/// Response from the chat endpoint
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct ChatResponse {
|
|
pub message: String,
|
|
pub sources: Vec<SourceReference>,
|
|
}
|