vapi_client/models/custom_knowledge_base.rs
1/*
2 * Vapi API
3 *
4 * API for building voice assistants
5 *
6 * The version of the OpenAPI document: 1.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct CustomKnowledgeBase {
17 /// This knowledge base is bring your own knowledge base implementation.
18 #[serde(rename = "provider")]
19 pub provider: Provider,
20 /// 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 } ```
21 #[serde(rename = "server")]
22 pub server: models::Server,
23 /// This is the id of the knowledge base.
24 #[serde(rename = "id")]
25 pub id: String,
26 /// This is the org id of the knowledge base.
27 #[serde(rename = "orgId")]
28 pub org_id: String,
29}
30
31impl CustomKnowledgeBase {
32 pub fn new(
33 provider: Provider,
34 server: models::Server,
35 id: String,
36 org_id: String,
37 ) -> CustomKnowledgeBase {
38 CustomKnowledgeBase {
39 provider,
40 server,
41 id,
42 org_id,
43 }
44 }
45}
46/// This knowledge base is bring your own knowledge base implementation.
47#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
48pub enum Provider {
49 #[serde(rename = "custom-knowledge-base")]
50 CustomKnowledgeBase,
51}
52
53impl Default for Provider {
54 fn default() -> Provider {
55 Self::CustomKnowledgeBase
56 }
57}