/*
* Vapi API
*
* Voice AI for developers.
*
* The version of the OpenAPI document: 1.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CustomKnowledgeBase {
/// This knowledge base is bring your own knowledge base implementation.
#[serde(rename = "provider")]
pub provider: ProviderTrue,
/// This is where the knowledge base request will be sent. Request Example: POST https://{server.url} Content-Type: application/json { \"messsage\": { \"type\": \"knowledge-base-request\", \"messages\": [ { \"role\": \"user\", \"content\": \"Why is ocean blue?\" } ], ...other metadata about the call... } } Response Expected: ``` { \"message\": { \"role\": \"assistant\", \"content\": \"The ocean is blue because water absorbs everything but blue.\", }, // YOU CAN RETURN THE EXACT RESPONSE TO SPEAK \"documents\": [ { \"content\": \"The ocean is blue primarily because water absorbs colors in the red part of the light spectrum and scatters the blue light, making it more visible to our eyes.\", \"similarity\": 1 }, { \"content\": \"Blue light is scattered more by the water molecules than other colors, enhancing the blue appearance of the ocean.\", \"similarity\": .5 } ] // OR, YOU CAN RETURN AN ARRAY OF DOCUMENTS THAT WILL BE SENT TO THE MODEL } ```
#[serde(rename = "server")]
pub server: models::Server,
/// This is the id of the knowledge base.
#[serde(rename = "id")]
pub id: String,
/// This is the org id of the knowledge base.
#[serde(rename = "orgId")]
pub org_id: String,
}
impl CustomKnowledgeBase {
pub fn new(
provider: ProviderTrue,
server: models::Server,
id: String,
org_id: String,
) -> CustomKnowledgeBase {
CustomKnowledgeBase {
provider,
server,
id,
org_id,
}
}
}
/// This knowledge base is bring your own knowledge base implementation.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ProviderTrue {
#[serde(rename = "custom-knowledge-base")]
CustomKnowledgeBase,
}
impl Default for ProviderTrue {
fn default() -> ProviderTrue {
Self::CustomKnowledgeBase
}
}