The original author of one-api has not been active for a long time, resulting in a backlog of PRs that cannot be updated. Therefore, I forked the code and merged some PRs that I consider important. I also welcome everyone to submit PRs, and I will respond and handle them actively and quickly.
Fully compatible with the upstream version, can be used directly by replacing the container image, docker images:
ppcelery/one-api:latest
ppcelery/one-api:arm64-latest
You can update the used quota using the API key of any token, allowing other consumption to be aggregated into the one-api for centralized management.
Each chat completion request will include a X-Oneapi-Request-Id
in the returned headers. You can use this request id to request GET /api/cost/request/:request_id
to get the cost of this request.
The returned structure is:
type UserRequestCost struct {
Id int `json:"id"`
CreatedTime int64 `json:"created_time" gorm:"bigint"`
UserID int `json:"user_id"`
RequestID string `json:"request_id"`
Quota int64 `json:"quota"`
CostUSD float64 `json:"cost_usd" gorm:"-"`
}