AI / LLM Integration

NAIDE provides first-class AI integration. The ai module is auto-imported when used — no setup required.

Text Generation

str answer = await ai.ask("What is the capital of France?")
log answer

Structured JSON

Get structured data from natural language with ai.json:

map user = await ai.json("Extract the user info from: John, 25, Tokyo", {
  name: "str",
  age: "int",
  city: "str"
})
log user.name   # "John"

Multi-turn Chat

list messages = [{role: "user", content: "Hello"}]
str reply = await ai.chat(messages)
log reply

Streaming

Stream responses token by token:

for await chunk of ai.stream("Write a poem about code"):
  log chunk

Embeddings

Generate vector embeddings for text:

list vec = await ai.embed("NAIDE is amazing")
log vec.length   # 1536 (dimensions)

Similarity

Compute cosine similarity between two vectors:

list a = await ai.embed("dog")
list b = await ai.embed("puppy")
num score = ai.similarity(a, b)
log score   # ~0.92

Prompt Templates

Define reusable, parameterized prompts:

prompt summarize {lang: "en"}:
  "Summarize the following text in {lang}:"
  "{text}"

str result = await ai.ask(summarize({text: "Long article here..."}))

RAG Pattern

Combine embeddings and vector store for retrieval-augmented generation:

use {createVectorStore} from "naider/runtime"

# Build knowledge base
any store = createVectorStore()
list docs = ["NAIDE compiles to JS", "NAIDE has built-in AI", "NAIDE supports Flask"]
each doc in docs:
  list vec = await ai.embed(doc)
  store.add(uuid(), vec, {text: doc})

# Query
list query = await ai.embed("How does NAIDE handle AI?")
list results = store.search(query, 3)
str context = results.map(r => r.meta.text).join("\n")
str answer = await ai.ask("Based on: {context}\n\nAnswer: How does NAIDE handle AI?")

AI in Server Routes

server app port 3000:
  post "/api/ask" (req, res):
    str answer = await ai.ask(req.body.prompt)
    ret {answer}

  post "/api/summarize" (req, res):
    str summary = await ai.ask(summarize({text: req.body.text}))
    ret {summary}

Configuration

Set AI provider via environment variables:

# OpenAI (default)
OPENAI_API_KEY=sk-...

# Anthropic
ANTHROPIC_API_KEY=sk-ant-...