Common Mistakes
- Do not commit
.env; it is intentionally ignored and should stay local. - Use
POST /v1/chat/completionswith JSON only. Multipart upload is not implemented. - For image input, send either an
http(s)URL, a data URL, or raw base64 onimage_url.url. - For audio input, send base64 on
input_audio.datawithformat: "mp3"or"wav", or sendinput_audio.urland let the proxy download and convert it to mp3. - Streamed chat completions are passed through directly, so proxy-hosted media URLs are only added on non-stream responses.
- Proxy-hosted media files are stored in memory and expire after
MEDIA_TTL_SECONDS. - The demo UI in
public/chatclient/assumes the proxy is available on the same origin unless you change the endpoint field manually. - Keep modules small and focused; this project follows the principle of simple modules with clear responsibility.