mirror of
https://github.com/katanemo/plano.git
synced 2026-05-08 23:32:43 +02:00
Improve end to end tracing (#628)
* adding canonical tracing support via bright-staff * improved formatting for tools in the traces * removing anthropic from the currency exchange demo * using Envoy to transport traces, not calling OTEL directly * moving otel collcetor cluster outside tracing if/else * minor fixes to not write to the OTEL collector if tracing is disabled * fixed PR comments and added more trace attributes * more fixes based on PR comments * more clean up based on PR comments --------- Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
This commit is contained in:
parent
8adb9795d8
commit
a79f55f313
34 changed files with 2556 additions and 403 deletions
|
|
@ -35,6 +35,9 @@ pub trait ProviderRequest: Send + Sync {
|
|||
/// Extract the user message for tracing/logging purposes
|
||||
fn get_recent_user_message(&self) -> Option<String>;
|
||||
|
||||
/// Get tool names if tools are defined in the request
|
||||
fn get_tool_names(&self) -> Option<Vec<String>>;
|
||||
|
||||
/// Convert the request to bytes for transmission
|
||||
fn to_bytes(&self) -> Result<Vec<u8>, ProviderRequestError>;
|
||||
|
||||
|
|
@ -42,6 +45,8 @@ pub trait ProviderRequest: Send + Sync {
|
|||
|
||||
/// Remove a metadata key from the request and return true if the key was present
|
||||
fn remove_metadata_key(&mut self, key: &str) -> bool;
|
||||
|
||||
fn get_temperature(&self) -> Option<f32>;
|
||||
}
|
||||
|
||||
impl ProviderRequest for ProviderRequestType {
|
||||
|
|
@ -95,6 +100,16 @@ impl ProviderRequest for ProviderRequestType {
|
|||
}
|
||||
}
|
||||
|
||||
fn get_tool_names(&self) -> Option<Vec<String>> {
|
||||
match self {
|
||||
Self::ChatCompletionsRequest(r) => r.get_tool_names(),
|
||||
Self::MessagesRequest(r) => r.get_tool_names(),
|
||||
Self::BedrockConverse(r) => r.get_tool_names(),
|
||||
Self::BedrockConverseStream(r) => r.get_tool_names(),
|
||||
Self::ResponsesAPIRequest(r) => r.get_tool_names(),
|
||||
}
|
||||
}
|
||||
|
||||
fn to_bytes(&self) -> Result<Vec<u8>, ProviderRequestError> {
|
||||
match self {
|
||||
Self::ChatCompletionsRequest(r) => r.to_bytes(),
|
||||
|
|
@ -124,6 +139,16 @@ impl ProviderRequest for ProviderRequestType {
|
|||
Self::ResponsesAPIRequest(r) => r.remove_metadata_key(key),
|
||||
}
|
||||
}
|
||||
|
||||
fn get_temperature(&self) -> Option<f32> {
|
||||
match self {
|
||||
Self::ChatCompletionsRequest(r) => r.get_temperature(),
|
||||
Self::MessagesRequest(r) => r.get_temperature(),
|
||||
Self::BedrockConverse(r) => r.get_temperature(),
|
||||
Self::BedrockConverseStream(r) => r.get_temperature(),
|
||||
Self::ResponsesAPIRequest(r) => r.get_temperature(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Parse the client API from a byte slice.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue