trieve_client/apis/
analytics_api.rs

1/*
2 * Trieve API
3 *
4 * Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5 *
6 * The version of the OpenAPI document: 0.11.7
7 * Contact: developers@trieve.ai
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`get_cluster_analytics`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum GetClusterAnalyticsError {
22    Status400(models::ErrorResponseBody),
23    UnknownValue(serde_json::Value),
24}
25
26/// struct for typed errors of method [`get_ctr_analytics`]
27#[derive(Debug, Clone, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum GetCtrAnalyticsError {
30    Status400(models::ErrorResponseBody),
31    UnknownValue(serde_json::Value),
32}
33
34/// struct for typed errors of method [`get_rag_analytics`]
35#[derive(Debug, Clone, Serialize, Deserialize)]
36#[serde(untagged)]
37pub enum GetRagAnalyticsError {
38    Status400(models::ErrorResponseBody),
39    UnknownValue(serde_json::Value),
40}
41
42/// struct for typed errors of method [`get_recommendation_analytics`]
43#[derive(Debug, Clone, Serialize, Deserialize)]
44#[serde(untagged)]
45pub enum GetRecommendationAnalyticsError {
46    Status400(models::ErrorResponseBody),
47    UnknownValue(serde_json::Value),
48}
49
50/// struct for typed errors of method [`get_search_analytics`]
51#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(untagged)]
53pub enum GetSearchAnalyticsError {
54    Status400(models::ErrorResponseBody),
55    UnknownValue(serde_json::Value),
56}
57
58/// struct for typed errors of method [`send_ctr_data`]
59#[derive(Debug, Clone, Serialize, Deserialize)]
60#[serde(untagged)]
61pub enum SendCtrDataError {
62    Status400(models::ErrorResponseBody),
63    UnknownValue(serde_json::Value),
64}
65
66/// struct for typed errors of method [`set_query_rating`]
67#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(untagged)]
69pub enum SetQueryRatingError {
70    Status400(models::ErrorResponseBody),
71    UnknownValue(serde_json::Value),
72}
73
74
75/// This route allows you to view the cluster analytics for a dataset.
76pub async fn get_cluster_analytics(configuration: &configuration::Configuration, tr_dataset: &str, cluster_analytics: models::ClusterAnalytics) -> Result<models::ClusterAnalyticsResponse, Error<GetClusterAnalyticsError>> {
77    let local_var_configuration = configuration;
78
79    let local_var_client = &local_var_configuration.client;
80
81    let local_var_uri_str = format!("{}/api/analytics/search/cluster", local_var_configuration.base_path);
82    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
83
84    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
85        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
86    }
87    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
88    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
89        let local_var_key = local_var_apikey.key.clone();
90        let local_var_value = match local_var_apikey.prefix {
91            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
92            None => local_var_key,
93        };
94        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
95    };
96    local_var_req_builder = local_var_req_builder.json(&cluster_analytics);
97
98    let local_var_req = local_var_req_builder.build()?;
99    let local_var_resp = local_var_client.execute(local_var_req).await?;
100
101    let local_var_status = local_var_resp.status();
102    let local_var_content = local_var_resp.text().await?;
103
104    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
105        serde_json::from_str(&local_var_content).map_err(Error::from)
106    } else {
107        let local_var_entity: Option<GetClusterAnalyticsError> = serde_json::from_str(&local_var_content).ok();
108        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
109        Err(Error::ResponseError(local_var_error))
110    }
111}
112
113/// This route allows you to view the CTR analytics for a dataset.
114pub async fn get_ctr_analytics(configuration: &configuration::Configuration, tr_dataset: &str, ctr_analytics: models::CtrAnalytics) -> Result<models::CtrAnalyticsResponse, Error<GetCtrAnalyticsError>> {
115    let local_var_configuration = configuration;
116
117    let local_var_client = &local_var_configuration.client;
118
119    let local_var_uri_str = format!("{}/api/analytics/ctr", local_var_configuration.base_path);
120    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
121
122    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
123        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
124    }
125    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
126    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
127        let local_var_key = local_var_apikey.key.clone();
128        let local_var_value = match local_var_apikey.prefix {
129            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
130            None => local_var_key,
131        };
132        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
133    };
134    local_var_req_builder = local_var_req_builder.json(&ctr_analytics);
135
136    let local_var_req = local_var_req_builder.build()?;
137    let local_var_resp = local_var_client.execute(local_var_req).await?;
138
139    let local_var_status = local_var_resp.status();
140    let local_var_content = local_var_resp.text().await?;
141
142    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
143        serde_json::from_str(&local_var_content).map_err(Error::from)
144    } else {
145        let local_var_entity: Option<GetCtrAnalyticsError> = serde_json::from_str(&local_var_content).ok();
146        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
147        Err(Error::ResponseError(local_var_error))
148    }
149}
150
151/// This route allows you to view the RAG analytics for a dataset.
152pub async fn get_rag_analytics(configuration: &configuration::Configuration, tr_dataset: &str, rag_analytics: models::RagAnalytics) -> Result<models::RagAnalyticsResponse, Error<GetRagAnalyticsError>> {
153    let local_var_configuration = configuration;
154
155    let local_var_client = &local_var_configuration.client;
156
157    let local_var_uri_str = format!("{}/api/analytics/rag", local_var_configuration.base_path);
158    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
159
160    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
161        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
162    }
163    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
164    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
165        let local_var_key = local_var_apikey.key.clone();
166        let local_var_value = match local_var_apikey.prefix {
167            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
168            None => local_var_key,
169        };
170        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
171    };
172    local_var_req_builder = local_var_req_builder.json(&rag_analytics);
173
174    let local_var_req = local_var_req_builder.build()?;
175    let local_var_resp = local_var_client.execute(local_var_req).await?;
176
177    let local_var_status = local_var_resp.status();
178    let local_var_content = local_var_resp.text().await?;
179
180    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
181        serde_json::from_str(&local_var_content).map_err(Error::from)
182    } else {
183        let local_var_entity: Option<GetRagAnalyticsError> = serde_json::from_str(&local_var_content).ok();
184        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
185        Err(Error::ResponseError(local_var_error))
186    }
187}
188
189/// This route allows you to view the recommendation analytics for a dataset.
190pub async fn get_recommendation_analytics(configuration: &configuration::Configuration, tr_dataset: &str, recommendation_analytics: models::RecommendationAnalytics) -> Result<models::RecommendationAnalyticsResponse, Error<GetRecommendationAnalyticsError>> {
191    let local_var_configuration = configuration;
192
193    let local_var_client = &local_var_configuration.client;
194
195    let local_var_uri_str = format!("{}/api/analytics/recommendations", local_var_configuration.base_path);
196    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
197
198    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
199        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
200    }
201    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
202    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
203        let local_var_key = local_var_apikey.key.clone();
204        let local_var_value = match local_var_apikey.prefix {
205            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
206            None => local_var_key,
207        };
208        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
209    };
210    local_var_req_builder = local_var_req_builder.json(&recommendation_analytics);
211
212    let local_var_req = local_var_req_builder.build()?;
213    let local_var_resp = local_var_client.execute(local_var_req).await?;
214
215    let local_var_status = local_var_resp.status();
216    let local_var_content = local_var_resp.text().await?;
217
218    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
219        serde_json::from_str(&local_var_content).map_err(Error::from)
220    } else {
221        let local_var_entity: Option<GetRecommendationAnalyticsError> = serde_json::from_str(&local_var_content).ok();
222        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
223        Err(Error::ResponseError(local_var_error))
224    }
225}
226
227/// This route allows you to view the search analytics for a dataset.
228pub async fn get_search_analytics(configuration: &configuration::Configuration, tr_dataset: &str, search_analytics: models::SearchAnalytics) -> Result<models::SearchAnalyticsResponse, Error<GetSearchAnalyticsError>> {
229    let local_var_configuration = configuration;
230
231    let local_var_client = &local_var_configuration.client;
232
233    let local_var_uri_str = format!("{}/api/analytics/search", local_var_configuration.base_path);
234    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
235
236    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
237        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
238    }
239    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
240    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
241        let local_var_key = local_var_apikey.key.clone();
242        let local_var_value = match local_var_apikey.prefix {
243            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
244            None => local_var_key,
245        };
246        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
247    };
248    local_var_req_builder = local_var_req_builder.json(&search_analytics);
249
250    let local_var_req = local_var_req_builder.build()?;
251    let local_var_resp = local_var_client.execute(local_var_req).await?;
252
253    let local_var_status = local_var_resp.status();
254    let local_var_content = local_var_resp.text().await?;
255
256    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
257        serde_json::from_str(&local_var_content).map_err(Error::from)
258    } else {
259        let local_var_entity: Option<GetSearchAnalyticsError> = serde_json::from_str(&local_var_content).ok();
260        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
261        Err(Error::ResponseError(local_var_error))
262    }
263}
264
265/// This route allows you to send CTR data to the system.
266pub async fn send_ctr_data(configuration: &configuration::Configuration, tr_dataset: &str, ctr_data_request_body: models::CtrDataRequestBody) -> Result<(), Error<SendCtrDataError>> {
267    let local_var_configuration = configuration;
268
269    let local_var_client = &local_var_configuration.client;
270
271    let local_var_uri_str = format!("{}/api/analytics/ctr", local_var_configuration.base_path);
272    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
273
274    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
275        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
276    }
277    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
278    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
279        let local_var_key = local_var_apikey.key.clone();
280        let local_var_value = match local_var_apikey.prefix {
281            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
282            None => local_var_key,
283        };
284        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
285    };
286    local_var_req_builder = local_var_req_builder.json(&ctr_data_request_body);
287
288    let local_var_req = local_var_req_builder.build()?;
289    let local_var_resp = local_var_client.execute(local_var_req).await?;
290
291    let local_var_status = local_var_resp.status();
292    let local_var_content = local_var_resp.text().await?;
293
294    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
295        Ok(())
296    } else {
297        let local_var_entity: Option<SendCtrDataError> = serde_json::from_str(&local_var_content).ok();
298        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
299        Err(Error::ResponseError(local_var_error))
300    }
301}
302
303/// This route allows you to Rate a query.
304pub async fn set_query_rating(configuration: &configuration::Configuration, tr_dataset: &str, rate_query_request: models::RateQueryRequest) -> Result<(), Error<SetQueryRatingError>> {
305    let local_var_configuration = configuration;
306
307    let local_var_client = &local_var_configuration.client;
308
309    let local_var_uri_str = format!("{}/api/analytics/search", local_var_configuration.base_path);
310    let mut local_var_req_builder = local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
311
312    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
313        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
314    }
315    local_var_req_builder = local_var_req_builder.header("TR-Dataset", tr_dataset.to_string());
316    if let Some(ref local_var_apikey) = local_var_configuration.api_key {
317        let local_var_key = local_var_apikey.key.clone();
318        let local_var_value = match local_var_apikey.prefix {
319            Some(ref local_var_prefix) => format!("{} {}", local_var_prefix, local_var_key),
320            None => local_var_key,
321        };
322        local_var_req_builder = local_var_req_builder.header("Authorization", local_var_value);
323    };
324    local_var_req_builder = local_var_req_builder.json(&rate_query_request);
325
326    let local_var_req = local_var_req_builder.build()?;
327    let local_var_resp = local_var_client.execute(local_var_req).await?;
328
329    let local_var_status = local_var_resp.status();
330    let local_var_content = local_var_resp.text().await?;
331
332    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
333        Ok(())
334    } else {
335        let local_var_entity: Option<SetQueryRatingError> = serde_json::from_str(&local_var_content).ok();
336        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
337        Err(Error::ResponseError(local_var_error))
338    }
339}
340