1use crate::ModelVersion;
2use crate::ModelVersion::V1;
3use derive_builder::Builder;
4use serde::Serialize;
5use std::fmt::{Display, Error, Formatter};
6
7pub enum MetaModel {
8 Llama2Chat13B(ModelVersion),
9}
10
11impl Display for MetaModel {
12 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
13 match self {
14 MetaModel::Llama2Chat13B(v) if *v == V1 => write!(f, "llama2-13b-chat-v1"),
15 _ => Err(Error),
16 }
17 }
18}
19
20#[derive(Serialize, Builder)]
21#[builder(setter(strip_option))]
22pub struct MetaParams {
23 pub prompt: String,
24
25 #[builder(default = "None")]
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub temperature: Option<f32>,
28
29 #[builder(default = "None")]
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub top_p: Option<f32>,
32
33 #[builder(default = "None")]
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub max_gen_len: Option<i32>,
36}