Gemini text input works. We translate from OpenAILLMContext format
on the fly in the GoogleLLMService implementation. This commit also
implements image input (vision) in both the GoogleLLMService and in
the OpenAILLMService. Image input is a hack and needs to be revisited.
OpenAI expects images to be uploaded as base64-encoded JPEGs. Google
does not require the base64 encoding. Other than for images, we use
the OpenAI format as our standard, but base64-encoding the images
and then unencoding them in the GoogleLLMService feels wasteful.
* removed pyaudio from threaded transport
* modularized torch and torchaudio
* modularized local transport
* Working Dockerfile as well
* docker updates for fly.io
* removed env var usage from SDK services
* started consolidating configure.py
* 1–3 work
* cleaned up the rest
* more cleanup
* cleanup and 05 tinkering
* made fal keys optional
* fal.ai image gen
* some sample and readme updates
* holy cow this is fast
* basic image-gen working
* starting audio prompt and reset
* short confirmation words
* moved fal module to pyproject.toml
---------
Co-authored-by: Moishe Lettvin <moishel@gmail.com>