Lesson 191 of 2116
Python Async With AI
async/await lets one program wait on many things at once. Perfect for HTTP calls and LLM APIs. Let AI help you avoid the common traps.
Lesson map
What this lesson covers
Learning path
The main moves in order
- 1Concurrency, Not Parallelism
- 2asyncio
- 3await
- 4gather
Concept cluster
Terms to connect while reading
Section 1
Concurrency, Not Parallelism
async is about waiting efficiently, not running faster on many CPUs. One event loop juggles hundreds of network calls by pausing each one while it waits.
httpx.AsyncClient plus asyncio.gather fetches many URLs concurrently without threads.
import asyncio
import httpx
async def fetch(client: httpx.AsyncClient, url: str) -> dict:
r = await client.get(url, timeout=10)
r.raise_for_status()
return r.json()
async def main(urls: list[str]) -> list[dict]:
async with httpx.AsyncClient() as client:
return await asyncio.gather(*(fetch(client, u) for u in urls))
if __name__ == "__main__":
data = asyncio.run(main([
"https://httpbin.org/json",
"https://httpbin.org/uuid",
]))
print(data)Bounded concurrency with a semaphore
Semaphores cap how many coroutines run at once. Essential when hitting rate-limited APIs.
async def fetch_limited(sem: asyncio.Semaphore, client: httpx.AsyncClient, url: str):
async with sem:
r = await client.get(url)
return r.json()
async def many(urls: list[str]) -> list[dict]:
sem = asyncio.Semaphore(10) # at most 10 in flight
async with httpx.AsyncClient() as client:
return await asyncio.gather(*(fetch_limited(sem, client, u) for u in urls))Understanding "Python Async With AI" in practice: AI-assisted coding shifts work from syntax recall to design thinking — models handle boilerplate so you focus on architecture. Async/await lets one program wait on many things at once. Perfect for HTTP calls and LLM APIs. Let AI help you avoid the common traps — and knowing how to apply this gives you a concrete advantage.
- Apply asyncio in your ai-coding workflow to get better results
- Apply await in your ai-coding workflow to get better results
- Apply gather in your ai-coding workflow to get better results
- Apply httpx in your ai-coding workflow to get better results
- 1Use AI to generate unit tests for an existing function
- 2Ask AI to refactor a messy function and explain the changes
- 3Have AI suggest a code review for a recent pull request
Key terms in this lesson
The big idea: async is the right tool when you wait more than you compute. Bound concurrency, stay inside one run() call, and never block the loop.
End-of-lesson quiz
Check what stuck
15 questions · Score saves to your progress.
Tutor
Curious about “Python Async With AI”?
Ask anything about this lesson. I’ll answer using just what you’re reading — short, friendly, grounded.
Progress saved locally in this browser. Sign in to sync across devices.
Related lessons
Keep going
Creators · 60 min
Python async/await — Waiting Without Blocking
Async lets your program make 100 API calls at once instead of one at a time. Essential for LLM apps. You'll write the two patterns that solve 90% of cases.
Creators · 60 min
Build It: Python Web Scraper With AI-Parsed Output
Scrape a site with httpx and BeautifulSoup, then hand messy text to Claude for structured extraction. A full project in 60 minutes.
Creators · 50 min
The Landscape: Copilot vs. Cursor vs. Windsurf vs. Claude Code
The AI coding tool market fragmented fast. Let's map the 2026 landscape honestly: who is for autocomplete, who is for agents, who wins on cost, and what the tradeoffs actually feel like.
