initial upl
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# Hygate
|
||||
|
||||
## About
|
||||
|
||||
Hygate is a standalone, single-binary gateway that exposes Tencent's Hunyuan 3 (hy3) Gradio space through an OpenAI-compatible API. It translates the standard `/v1/chat/completions` and `/v1/models` endpoints into Gradio's `/gradio_api/call/chat` request/stream protocol, so any OpenAI-compatible client can talk to Hunyuan 3 without modification.
|
||||
|
||||
## Features
|
||||
|
||||
- OpenAI-compatible chat completions (streaming and non-streaming)
|
||||
- Reasoning content passthrough (`reasoning_content`)
|
||||
- Tool/function calling, including incremental streaming of tool-call arguments
|
||||
- Fibonacci backoff retry on upstream calls
|
||||
- Configurable endpoint and User-Agent
|
||||
- No external dependencies (standard library only)
|
||||
|
||||
## Installation
|
||||
|
||||
Build from source with Go 1.26 or newer:
|
||||
|
||||
```
|
||||
make
|
||||
```
|
||||
|
||||
This produces `bin/hygate` binary for your architecture.
|
||||
|
||||
Install the latest release straight from the Git repository with `go install`:
|
||||
|
||||
```
|
||||
go install code.luxferre.top/luxferre/hygate@latest
|
||||
```
|
||||
|
||||
This fetches the module from `https://code.luxferre.top/luxferre/hygate.git` and places the `hygate` binary in `$(go env GOPATH)/bin`. Make sure that directory is on your `PATH`.
|
||||
|
||||
If you prefer to build from a local checkout instead:
|
||||
|
||||
```
|
||||
git clone https://code.luxferre.top/luxferre/hygate.git
|
||||
cd hygate
|
||||
go install .
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Run the gateway:
|
||||
|
||||
```
|
||||
./bin/hygate [-port 8080] [-endpoint https://tencent-hy3.hf.space]
|
||||
```
|
||||
|
||||
Available flags:
|
||||
|
||||
- `-port` — TCP port to listen on (default `8080`)
|
||||
- `-endpoint` — root URL of the Hunyuan Gradio space (default `https://tencent-hy3.hf.space`)
|
||||
- `-user-agent` / `-ua` — custom User-Agent sent to the upstream
|
||||
|
||||
Endpoints served:
|
||||
|
||||
- `GET /v1/models`
|
||||
- `POST /v1/chat/completions`
|
||||
|
||||
Example request with curl:
|
||||
|
||||
```
|
||||
curl http://localhost:8080/v1/chat/completions \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"model":"hy3","messages":[{"role":"user","content":"Hello"}],"stream":false}'
|
||||
```
|
||||
|
||||
## FAQ
|
||||
|
||||
### Does this need an API key?
|
||||
|
||||
No. The gateway proxies directly to the public Gradio space and does not require authentication.
|
||||
|
||||
### Which models are reported?
|
||||
|
||||
A single model, `hy3`, is advertised via `/v1/models`.
|
||||
|
||||
### Are token usage counts returned?
|
||||
|
||||
No. The `usage` field is always zero, since the upstream Gradio API does not expose token counts.
|
||||
|
||||
### Can the upstream endpoint be changed?
|
||||
|
||||
Yes, with the `-endpoint` flag. Any HuggingFace Gradio space hosting the compatible `chat` endpoint will work.
|
||||
|
||||
## Credits
|
||||
|
||||
Created by Luxferre in 2026, released into the public domain with no warranties.
|
||||
Reference in New Issue
Block a user