neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻譯準備中
使用文字、圖像、音訊、影片和嵌入,在一個開源 Python SDK 中構建。使用 Celeste 選擇模型和提供者。
AI 翻譯
Build with text, images, audio, video, and embeddings in one open-source Python SDK. Choose your models and providers with Celeste.
開發工具Python · Jupyter NotebookGitHub @withceleste上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
開源、類型安全的軟體基元,用於多模態 AI。所有模型、所有供應商,統一介面 🌟
AI 翻譯
Open source, type-safe primitives for multi-modal AI. All modelities, all providers, one interface 🌟
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
All modalities. All providers. One interface.
Primitives, not frameworks.
🚀 This is the v1 Beta release. We're validating the new architecture before the stable v1.0 release. Feedback welcome!
Type-safe, modality/provider-agnostic primitives.檢視完整 README ↗The primitive layer for multi-modal AI
All modalities. All providers. One interface.
Primitives, not frameworks.
Quick Start • Request Provider
Type-safe, modality/provider-agnostic primitives.
import celeste
# One SDK. Every modality. Any provider.
text = await celeste.text.generate("Explain quantum computing", model="claude-opus-4-5")
image = await celeste.images.generate("A serene mountain lake at dawn", model="flux-2-pro")
speech = await celeste.audio.speak("Welcome to the future", model="eleven_v3")
video = await celeste.videos.analyze(video_file, prompt="Summarize this clip", model="gemini-3.1-pro-preview")
embeddings = await celeste.text.embed(["lorep ipsum", "dolor sit amet"], model="gemini-embedding-2")
and many more
Missing a provider? Request it – ⚡ we ship fast.
| Action | Text | Images | Audio | Video | Live |
|---|---|---|---|---|---|
| Generate | ✓ | ✓ | ○ | ✓ | — |
| Edit | — | ✓ | — | — | — |
| Analyze | — | ✓ | ✓ | ✓ | — |
| Upscale | — | ○ | — | ○ | — |
| Speak | — | — | ✓ | — | — |
| Transcribe | — | — | ✓ | — | — |
| Embed | ✓ | ○ | — | ○ | — |
| Connect | — | — | — | — | ✓ |
| Decide | ✓ | ✓ | — | — | — |
✓ Available · ○ Planned
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
# Model IDs
anthropic_model_id = "claude-4-5-sonnet"
google_model_id = "gemini-2.5-flash"
# ❌ Anthropic Way
from anthropic import Anthropic
import json
client = Anthropic()
response = client.messages.create(
model=anthropic_model_id,
messages=[
{"role": "user",
"content": "Extract user info: John is 30"}
],
output_format={
"type": "json_schema",
"schema": User.model_json_schema()
}
)
user_data = json.loads(response.content[0].text)
# ❌ Google Gemini Way
from google import genai
from google.genai import types
client = genai.Client()
response = await client.aio.models.generate_content(
model=gemini_model_id,
contents="Extract user info: John is 30",
config=types.GenerateContentConfig(
response_mime_type="application/json",
response_schema=User
)
)
user = response.parsed
# ✅ Celeste Way
import celeste
response = await celeste.text.generate(
"Extract user info: John is 30",
model=google_model_id, # <--- Choose any model from any provider
output_schema=User, # <--- Unified parameter working across all providers
)
user = response.content # Already parsed as User instance
For explicit configuration or client reuse, use create_client with modality + operation. This is modality-first: you choose the output type and operation explicitly.
from celeste import create_client, Modality, Operation, Provider
client = create_client(
modality=Modality.TEXT,
operation=Operation.GENERATE,
provider=Provider.OLLAMA,
model="llama3.2",
)
response = await client.generate("Extract user info: John is 30", output_schema=User)
capabilityis still supported but deprecated. Prefermodality+operation.
uv add celeste-ai
# or
pip install celeste-ai
# Full IDE autocomplete
import celeste
response = await celeste.text.generate(
"Explain AI",
model="gpt-4o-mini",
temperature=0.7, # ✅ Validated against the model's declared Range
max_tokens=100, # ✅ Validated when the model declares a constraint
)
# Typed response
print(response.content) # str (IDE knows the type)
print(response.usage.input_tokens) # int
print(response.metadata["model"]) # str
Declared constraints raise locally before the API call; unconstrained parameters pass through to the provider.
We welcome contributions! See CONTRIBUTING.md.
Request a provider: GitHub Issues Report bugs: GitHub Issues
MIT license – see LICENSE for details.
Get Started • Documentation • GitHub
Made with ❤️ by developers tired of framework lock-in