pub struct KagiClient {
pub config: KagiConfig,
pub inner_client: ClientWithMiddleware,
}Fields§
§config: KagiConfig§inner_client: ClientWithMiddlewareImplementations§
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 !RefUnwindSafe for KagiClient
impl !UnwindSafe for KagiClient
impl Freeze for KagiClient
impl Send for KagiClient
impl Sync for KagiClient
impl Unpin for KagiClient
impl UnsafeUnpin 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