initial upl

This commit is contained in:
Luxferre
2026-07-31 09:54:59 +03:00
commit deb1025bda
5 changed files with 1158 additions and 0 deletions
+89
View File
@@ -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.