Async Support¶
Lexilux provides full async support for concurrent API calls using httpx.
Basic Async Call¶
import asyncio
from lexilux import Chat
async def main():
chat = Chat(base_url="...", api_key="...", model="gpt-4")
result = await chat.a("Hello, async world!")
print(result.text)
asyncio.run(main())
Concurrent Requests¶
import asyncio
from lexilux import Chat
async def main():
chat = Chat(base_url="...", api_key="...", model="gpt-4")
questions = ["What is Python?", "What is JavaScript?", "What is Rust?"]
# Run all requests concurrently
tasks = [chat.a(q) for q in questions]
results = await asyncio.gather(*tasks)
for result in results:
print(result.text[:50] + "...")
asyncio.run(main())
Async Streaming¶
import asyncio
from lexilux import Chat
async def main():
chat = Chat(base_url="...", api_key="...", model="gpt-4")
full_response = ""
async for chunk in chat.astream("Tell me a joke"):
if chunk.delta:
full_response += chunk.delta
print(chunk.delta, end="", flush=True)
if chunk.done:
print(f"\nTokens: {chunk.usage.total_tokens}")
asyncio.run(main())
Async Embedding¶
import asyncio
from lexilux import Embed
async def main():
embed = Embed(base_url="...", api_key="...", model="text-embedding-ada-002")
texts = ["Hello", "World", "Async"]
tasks = [embed.a(text) for text in texts]
results = await asyncio.gather(*tasks)
for result in results:
print(f"Vector: {result.vectors[:3]}...")
asyncio.run(main())
See Also¶
Async Examples - Full async examples