Commit graph

14 commits

Author SHA1 Message Date
Roland Tannous
ae46ac2e07 add gemini-3-flash-preview as default gemini model 2026-03-30 06:16:41 +00:00
Roland Tannous
31beda9918 fix gemini vision test: download image as base64 data URI instead of remote URL 2026-03-30 06:10:14 +00:00
Roland Tannous
f3b28f2916 fix: update Mistral model to mistral-small-2506 2026-03-30 05:48:11 +00:00
Roland Tannous
b988033200 test: use sloth photo URL for vision test, add Anthropic remote URL support 2026-03-30 05:27:05 +00:00
Roland Tannous
15f836c820 feat: multimodal image support for external providers
- Add _build_external_messages() that preserves image_url parts for
  vision-capable providers instead of stripping them
- Update _proxy_to_external_provider() to use new helper
- Translate image_url content parts to Anthropic native image format
  in _stream_anthropic()
- Add TestVisionInference pytest class (1x1 PNG smoke test)
2026-03-30 05:18:02 +00:00
Roland Tannous
91ae9d0ccc feat: remove together, fireworks, perplexity providers 2026-03-30 04:12:00 +00:00
Roland Tannous
70f488b0db feat: rename google -> gemini, refresh model list to 2.5 series 2026-03-30 04:07:52 +00:00
Roland Tannous
6cf0a60087 feat: add DeepSeek provider (deepseek-chat, deepseek-reasoner) 2026-03-30 01:56:52 +00:00
Roland Tannous
a792f516aa feat: add native Anthropic provider with Messages API translation 2026-03-29 19:47:54 +00:00
Roland Tannous
c7c0a4ae9e feat: add OpenRouter as 8th provider 2026-03-29 19:32:42 +00:00
Roland Tannous
10e2b5fdef fix: update Cohere models to current (command-r retired Sept 2025) 2026-03-29 18:55:39 +00:00
Roland Tannous
6da557ea6a fix tests: default port 8000, allow 400 for no-model-loaded 2026-03-29 18:49:04 +00:00
Roland Tannous
0e11b721ba fix auth fixture: handle forced password change on fresh install 2026-03-29 18:37:03 +00:00
Roland Tannous
4656e63374 studio: add external provider support for chat inference
Adds the ability to connect to OpenAI, Mistral, Google, Cohere, Together,
Fireworks, and Perplexity from the Studio chat interface.

- Provider configs stored in SQLite (no API keys persisted)
- RSA-2048 key pair generated at startup for client-side key encryption
- httpx proxy client streams SSE responses in OpenAI-compatible format
- New /api/providers routes: registry, CRUD, test, models
- /v1/chat/completions routes to external provider when provider fields present
- Integration test suite covering CRUD, connection, model listing, and inference
- Frontend spec doc with full API contract
2026-03-29 18:12:45 +00:00