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