Pixeltable 发布多模态数据库与编排服务,Cloud 进入 Limited Beta
pixeltable/pixeltable
Pixeltable 将多模态数据库、编排和 HTTP 服务合并到单个应用文件,图像、视频、音频和文档以表列形式存储,转换写成计算列,索引和 HTTP 路由以声明方式定义。
Pixeltable Cloud is in Limited Beta. Email contact@pixeltable.com if you are interested.
Multimodal database, orchestration, and serving in one file
Quickstart | Documentation | CLI | Cloud | Discord
Install into your agent: Agent Skill · MCP server · Cursor plugin · Claude plugin · ChatGPT plugin
Reading this as an agent? Start at get-started.md, then skill.md and llms-full.txt.
Pixeltable is the database, orchestration, and serving layers. Images, video, audio, and documents live in tables. A transform is a computed column. An index is a declaration, and so is an HTTP route. Insert a row and everything below it runs. Object storage, a vector database, an orchestrator, and the endpoint code that copies between them collapse into one application file. That file is what a coding agent can hold: it writes the whole application at once, and you review the change in one diff instead of across four systems.
pip install 'pixeltable[serve]'
pxt init
pxt service example --out app.py
pxt schema update app.py my_app
pxt service update app.py my_apppxt schema update creates the catalog my_app and its tables; it does not start HTTP.
pxt service update starts HTTP; it does not create tables.
Generate TypeScript types from a service's OpenAPI schema and call it from a Next.js backend using the HTTP serving guide.
pxt service example writes this application file.
import pixeltable as pxt import pixeltable.functions as pxtf from pixeltable.serving import FastAPIRouter TableModel = pxt.model_base() @pxt.udf # a Python function the columns below can call def excerpt(text: str, n: int = 12) -> str: return text if len(text) <= n else f'{text[:n]}...' class Docs(TableModel, name='docs'): id = pxt.Column(value=pxtf.uuid.uuid7(), primary_key=True) # a generated key: provided automatically on insert title: pxt.String body: pxt.String | None title_upper = pxtf.string.upper(title) # an assignment: computed on insert and on update summary = excerpt(title) # a computed column over a udf this file defines ingest = FastAPIRouter(name='ingest') ingest.add_insert_route( # POST /docs inserts and returns the computed columns Docs, path='/docs', inputs=[Docs.title, Docs.body], outputs=[Docs.id, Docs.title_upper, Docs.summary] ) ingest.add_update_route( # POST /docs/update takes id plus the new values Docs, path='/docs/update', inputs=[Docs.title], outputs=[Docs.id, Docs.title_upper] ) ingest.add_compute_route(Docs, path='/titles', inputs=[Docs.title], outputs=[Docs.title_upper])
The same file holds pxt.Image, pxt.Video, pxt.Audio, or pxt.Document columns, and a
computed column over one of them is another assignment:
media pipelines,
RAG. The port is assigned, so read it
back rather than hardcoding it:
URL=$(pxt service list --json | jq -r '.[0].endpoint') curl -X POST "$URL/docs" \ -H 'Content-Type: application/json' \ -d '{"title": "Hello", "body": "world"}' # {"id":"...","title_upper":"HELLO","summary":"Hello"}
The same file runs on Pixeltable Cloud. Sign in with pxt login. If pxt org list shows no organization, pxt org create NAME makes one and provisions its database, main. Add this entry to the project file, with your organization's name in place of org:
[[pixeltable.database]] name = 'pxt://org:main'
pxt db update pxt://org:main pxt schema update app.py pxt://org:main pxt service update app.py pxt://org:main
The Cloud guide covers the first deployment step by step, API keys, secrets, and what to run after a change.
Chat agent or video search
uvx pixeltable-new copies one app from the starter kit. The default copy is a chat app; pass agent as the last argument to pxt schema update. --video copies video search; pass videointel.
uvx pixeltable-new myapp
cd myapp
uv sync
pxt schema update app.py agent
pxt service update app.py agentInserting into the knowledge table needs no API key. The /ask route needs ANTHROPIC_API_KEY.
To mount the routes on an existing FastAPI app, app.include_router(...). HTTP serving. To skip endpoints, run pxt schema update, insert from Python, then export_sql. Self-hosting.
Coding agents
The links above offer the Skill, plugin, and MCP setup options. How the Skill writes app.py: AI coding agents.
The Pixeltable plugin packages the Skill for Claude, Cursor, and ChatGPT. Docs MCP searches public documentation; the site also offers a remote HTTP Site MCP for docs search and integration listing. Hosted Cloud MCP reads your signed-in Cloud organization through OAuth. It also starts and stops databases, restarts services, and sets secrets. The local developer MCP runs on your machine with catalog, query, and REPL tools. Hosted Cloud MCP does not deploy or delete; use the pxt CLI for that.
npx skills add pixeltable/pixeltable-skill
The skill writes a TableModel in app.py. If the agent writes create_table in application code, names the file schema.py, or writes the removed command pxt serve, the installed skill is stale: reinstall npx skills add pixeltable/pixeltable-skill.
Notebooks and tests still use pxt.create_table(). An app puts tables in app.py and creates them with pxt schema update.
License
Apache 2.0. Contributing · Discord
来源:GitHub · github.com