pub struct InputBuilder { /* private fields */ }
Expand description
Builder for Input
.
Implementations§
Source§impl InputBuilder
impl InputBuilder
Sourcepub fn messages(&mut self, value: Vec<Message>) -> &mut Self
pub fn messages(&mut self, value: Vec<Message>) -> &mut Self
Examples found in repository?
examples/text-generation.rs (lines 11-15)
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("你是谁")
.build()
.unwrap()])
.build()?,
)
.parameters(
ParametersBuilder::default()
.result_format("message")
.build()?,
)
.build()?;
let client = Client::new();
let response = client.generation().call(request).await?;
dbg!(response);
Ok(())
}
More examples
examples/qwen-mt.rs (lines 11-15)
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-mt-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("我看到这个视频后没有笑")
.build()
.unwrap()])
.build()?,
)
.parameters(
ParametersBuilder::default()
.translation_options(
TranslationOptionsBuilder::default()
.source_lang("Chinese")
.target_lang("English")
.build()?,
)
.build()?,
)
.build()?;
let client = Client::new();
let response = client.generation().call(request).await?;
dbg!(response);
Ok(())
}
examples/text-generation-stream.rs (lines 12-16)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("qwen 大模型系统是谁开发的?")
.build()
.unwrap()])
.build()?,
)
.stream(true)
.parameters(
ParametersBuilder::default()
.result_format("message")
.incremental_output(true)
.build()?,
)
.build()?;
let client = Client::new();
let mut stream = client.generation().call_stream(request).await?;
while let Some(response) = stream.next().await {
match response {
Ok(go) => go.output.choices.iter().for_each(|c| {
print!("{}", c.message.content);
}),
Err(e) => eprintln!("{}", e),
}
}
Ok(())
}
examples/qwen-mt-stream.rs (lines 12-16)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-mt-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("我看到这个视频后没有笑")
.build()
.unwrap()])
.build()?,
)
.stream(true)
.parameters(
ParametersBuilder::default()
// .incremental_output(true) # Qwen-MT模型暂时不支持增量式流式输出,所以此设置无效
.translation_options(
TranslationOptionsBuilder::default()
.source_lang("Chinese")
.target_lang("English")
.build()?,
)
.build()?,
)
.build()?;
let client = Client::new();
let mut stream = client.generation().call_stream(request).await?;
while let Some(response) = stream.next().await {
match response {
Ok(go) => go.output.choices.iter().for_each(|c| {
println!("{}", c.message.content);
}),
Err(e) => eprintln!("{}", e),
}
}
Ok(())
}
Sourcepub fn build(&self) -> Result<Input, InputBuilderError>
pub fn build(&self) -> Result<Input, InputBuilderError>
Examples found in repository?
examples/text-generation.rs (line 16)
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("你是谁")
.build()
.unwrap()])
.build()?,
)
.parameters(
ParametersBuilder::default()
.result_format("message")
.build()?,
)
.build()?;
let client = Client::new();
let response = client.generation().call(request).await?;
dbg!(response);
Ok(())
}
More examples
examples/qwen-mt.rs (line 16)
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-mt-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("我看到这个视频后没有笑")
.build()
.unwrap()])
.build()?,
)
.parameters(
ParametersBuilder::default()
.translation_options(
TranslationOptionsBuilder::default()
.source_lang("Chinese")
.target_lang("English")
.build()?,
)
.build()?,
)
.build()?;
let client = Client::new();
let response = client.generation().call(request).await?;
dbg!(response);
Ok(())
}
examples/text-generation-stream.rs (line 17)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("qwen 大模型系统是谁开发的?")
.build()
.unwrap()])
.build()?,
)
.stream(true)
.parameters(
ParametersBuilder::default()
.result_format("message")
.incremental_output(true)
.build()?,
)
.build()?;
let client = Client::new();
let mut stream = client.generation().call_stream(request).await?;
while let Some(response) = stream.next().await {
match response {
Ok(go) => go.output.choices.iter().for_each(|c| {
print!("{}", c.message.content);
}),
Err(e) => eprintln!("{}", e),
}
}
Ok(())
}
examples/qwen-mt-stream.rs (line 17)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let request = GenerationParamBuilder::default()
.model("qwen-mt-turbo".to_string())
.input(
InputBuilder::default()
.messages(vec![MessageBuilder::default()
.role("user")
.content("我看到这个视频后没有笑")
.build()
.unwrap()])
.build()?,
)
.stream(true)
.parameters(
ParametersBuilder::default()
// .incremental_output(true) # Qwen-MT模型暂时不支持增量式流式输出,所以此设置无效
.translation_options(
TranslationOptionsBuilder::default()
.source_lang("Chinese")
.target_lang("English")
.build()?,
)
.build()?,
)
.build()?;
let client = Client::new();
let mut stream = client.generation().call_stream(request).await?;
while let Some(response) = stream.next().await {
match response {
Ok(go) => go.output.choices.iter().for_each(|c| {
println!("{}", c.message.content);
}),
Err(e) => eprintln!("{}", e),
}
}
Ok(())
}
Trait Implementations§
Source§impl Clone for InputBuilder
impl Clone for InputBuilder
Source§fn clone(&self) -> InputBuilder
fn clone(&self) -> InputBuilder
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for InputBuilder
impl RefUnwindSafe for InputBuilder
impl Send for InputBuilder
impl Sync for InputBuilder
impl Unpin for InputBuilder
impl UnwindSafe for InputBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more