pub struct Generation<'a> { /* private fields */ }
Implementations§
Source§impl<'a> Generation<'a>
impl<'a> Generation<'a>
pub fn new(client: &'a Client) -> Self
Sourcepub async fn call(&self, request: GenerationParam) -> Result<GenerationOutput>
pub async fn call(&self, request: GenerationParam) -> Result<GenerationOutput>
Examples found in repository?
examples/text-generation.rs (line 27)
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 32)
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(())
}
Sourcepub async fn call_stream(
&self,
request: GenerationParam,
) -> Result<GenerationOutputStream>
pub async fn call_stream( &self, request: GenerationParam, ) -> Result<GenerationOutputStream>
Examples found in repository?
examples/text-generation-stream.rs (line 30)
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(())
}
More examples
examples/qwen-mt-stream.rs (line 35)
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(())
}
Auto Trait Implementations§
impl<'a> Freeze for Generation<'a>
impl<'a> !RefUnwindSafe for Generation<'a>
impl<'a> Send for Generation<'a>
impl<'a> Sync for Generation<'a>
impl<'a> Unpin for Generation<'a>
impl<'a> !UnwindSafe for Generation<'a>
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