async_dashscope/operation/generation/
param.rs

1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::operation::common::{Parameters, StreamOptions};
5
6#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
7pub struct GenerationParam {
8    pub model: String,
9
10    pub input: Input,
11
12    #[serde(skip_serializing_if = "Option::is_none")]
13    #[builder(setter(into, strip_option))]
14    #[builder(default=None)]
15    pub parameters: Option<Parameters>,
16
17    #[builder(setter(into, strip_option))]
18    #[builder(default=Some(false))]
19    pub stream: Option<bool>,
20
21    #[builder(setter(into, strip_option))]
22    #[builder(default=None)]
23    pub stream_options: Option<StreamOptions>,
24}
25
26#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
27pub struct Input {
28    pub messages: Vec<Message>,
29}
30
31#[derive(Debug, Clone, Builder, Serialize, Deserialize, PartialEq)]
32pub struct Message {
33    #[builder(setter(into))]
34    pub role: String,
35    #[builder(setter(into))]
36    pub content: String,
37    #[builder(setter(into, strip_option))]
38    #[builder(default=Some(false))]
39    pub partial: Option<bool>,
40}