Skip to content

Latest commit

 

History

History
95 lines (66 loc) · 1.93 KB

README.md

File metadata and controls

95 lines (66 loc) · 1.93 KB

Kaginawa

project icon

An unofficial client to Kagi APIs

Installation

pip install kaginawa

Usage

from kaginawa.client import Kaginawa

# You can also set the KAGI_API_KEY environment variable.
client = Kaginawa(token="YOUR_API_TOKEN")

response: KaginawaFastGPTResponse = client.generate(
    "Write a logstash pipeline file to send a heartbeat to a server "
    "https://example.com/heartbeat every 30 seconds"
)

print(response.output)

for reference in response.references:
    print(reference.title)
    print(reference.snippet)
    print(reference.url)

response: KaginawaEnrichResponse = client.enrich_web(query="Best fermented hot sauce")
# or 
response: KaginawaEnrichResponse = client.enrich_news(query="Is Oliver Tree okay?")

for result in response.results:
    print(result.rank)
    print(result.title)
    print(result.url)
    print(result.snippet)
    print(result.published)


response: KaginawaSummarizationResponse = client.summarize(
    url="https://example.com",
    engine=KaginawaSummarizationEngine.AGNES,
    summary_type=KaginawaSummaryType.TAKEAWAY,
    target_language="FR"
)

print(response.output)

response: KaginawaSummarizationResponse = client.summarize(
    text="The rain in Spain…",
    engine=KaginawaSummarizationEngine.CECIL
)

print(response.output)

Async!

import asyncio
from kaginawa.async_client import AsyncKaginawa

async def amain():
    kagi_client = AsyncKaginawa(...)
    res = await kagi_client.generate(...)
    print(res.output)

    # If you want to explicitly close the client.
    kagi_client.close()

if __name__ == "__main__":
    asyncio.run(amain()) 

FAQ

Do you support the search API?
I would love to but I don't have enterprise.
Why the name?
Because it's like the only word that starts with Kagi

kagi_meme

Authors