https://github.com/ndurner/oai_chat
Multi-modal Chatbot based on OpenAI
https://github.com/ndurner/oai_chat
chat chatbot gpt-4 gradio gradio-interface llm llm-inference mcp-client multimodal openai vision-language-model vlm
Last synced: 5 months ago
JSON representation
Multi-modal Chatbot based on OpenAI
- Host: GitHub
- URL: https://github.com/ndurner/oai_chat
- Owner: ndurner
- License: mit
- Created: 2023-11-12T20:41:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-03T14:54:29.000Z (10 months ago)
- Last Synced: 2025-08-03T16:33:24.423Z (10 months ago)
- Topics: chat, chatbot, gpt-4, gradio, gradio-interface, llm, llm-inference, mcp-client, multimodal, openai, vision-language-model, vlm
- Language: Python
- Homepage:
- Size: 133 KB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
---
title: OAI Chat
emoji: 🤖
colorFrom: yellow
colorTo: gray
sdk: gradio
sdk_version: 5.36.2
app_file: app.py
pinned: false
license: mit
---
# OAI Chat
Chat interface based on OpenAI transformer models. \
Features:
* Image upload (support for vision via gpt-4-vision)
* Word file (DOCX) upload
* PDF file support (via image rendering & GPT-4V)
* Plaintext file upload
* chat history download
* file download
* example: download an ICS calendar file the model has created for you
* streaming chat
* image generation (via gpt-image-1, aka "ImageGen")
* MCP server support (both remote and local) via configurable registry
* optional UnrestrictedPython execution when `CODE_EXEC_UNRESTRICTED_PYTHON=1`
The MCP registry is looked up in the following order:
1. `$OAI_CHAT_MCP_REGISTRY` if set
2. `mcp_registry.json` in this repository
3. `~/.oai_chat/mcp_registry.json`
See `mcp_registry.sample.json` for an example configuration.
Headers and query parameters may reference environment variables using the `env:` prefix.
Use `"allowed_tools": ["*"]` to permit all tools from a server.
For local MCP servers, use the `command` and `args` fields to specify how to launch the server. Environment variables can be passed via the `env` field. For example:
```json
{
"name": "exa_local",
"command": "npx",
"args": ["-y", "exa-mcp-server"],
"env": {
"EXA_API_KEY": "env:EXA_API_KEY"
},
"allowed_tools": ["*"]
}
```
When an MCP tool requires approval, the assistant will notify you in chat.
Reply with `y` to approve or `n` to deny the request, optionally adding a comment after the `y` or `n`.