pub struct KagiClient {
pub config: KagiConfig,
pub inner_client: ClientWithMiddleware,
}
Fields§
§config: KagiConfig
§inner_client: ClientWithMiddleware
Implementations§
Source§impl KagiClient
impl KagiClient
Sourcepub fn new(config: KagiConfig) -> Self
pub fn new(config: KagiConfig) -> Self
Create a KagiClient for a given KagiConfig and reqwest::Client.
Examples found in repository?
examples/simple-fastgpt.rs (line 6)
4async fn main() {
5 let config = kagi_api::KagiConfig::with_api_key("api key goes here");
6 let client = kagi_api::KagiClient::new(config);
7
8 let use_cache = true;
9 let answer = client
10 .fastgpt("How do I entertain my cat?", use_cache)
11 .await
12 .expect("A valid FastGPT search result");
13
14 // FIXME: Cannot `.render()` without kagi-cli: Remove `Render` trait's coupling from `Args`.
15 serde_json::to_writer_pretty(std::io::stdout(), &answer).unwrap();
16}
More examples
examples/simple-summary.rs (line 6)
4async fn main() {
5 let config = kagi_api::KagiConfig::with_api_key("api key goes here");
6 let client = kagi_api::KagiClient::new(config);
7 let options = SummaryOptions::default();
8
9 let some_url = url::Url::parse("https://en.wikipedia.org/wiki/A_Cyborg_Manifesto").unwrap();
10 let summary = client
11 .summarize_url(some_url, options)
12 .await
13 .expect("A valid Universal Summarizer result");
14
15 // FIXME: Cannot `.render()` without kagi-cli: Remove `Render` trait's coupling from `Args`.
16 serde_json::to_writer_pretty(std::io::stdout(), &summary).unwrap();
17}
Sourcepub fn with_replay(
config: KagiConfig,
reqwest_client: Client,
record_replay_mode: RecordReplayMode,
) -> KagiResult<Self>
pub fn with_replay( config: KagiConfig, reqwest_client: Client, record_replay_mode: RecordReplayMode, ) -> KagiResult<Self>
Create a KagiClient for a given KagiConfig and reqwest::Client.
Use rvcr::VCRMiddleware to log request/response to disk.
FIXME: Mention KAGI_API_LOGDIR
.
FIXME: Avoid panics from rvcr
by fixing them upstream.
pub async fn query<Q>(
&self,
endpoint: &str,
request_body: Q,
) -> KagiResult<Response>where
Q: Serialize,
Trait Implementations§
Source§impl FastGPT for KagiClient
impl FastGPT for KagiClient
Source§impl UniversalSummarizer for KagiClient
impl UniversalSummarizer for KagiClient
fn summarize<'life0, 'async_trait>(
&'life0 self,
subject: Subject,
options: SummaryOptions,
) -> Pin<Box<dyn Future<Output = KagiResult<Summary>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn summarize_url<'life0, 'async_trait>(
&'life0 self,
url: Url,
options: SummaryOptions,
) -> Pin<Box<dyn Future<Output = KagiResult<Summary>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
fn summarize_text<'life0, 'async_trait>(
&'life0 self,
text: String,
options: SummaryOptions,
) -> Pin<Box<dyn Future<Output = KagiResult<Summary>> + Send + 'async_trait>>where
Self: Sync + 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl Freeze for KagiClient
impl !RefUnwindSafe for KagiClient
impl Send for KagiClient
impl Sync for KagiClient
impl Unpin for KagiClient
impl !UnwindSafe for KagiClient
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