- Added new dependencies: `github.com/fsnotify/fsnotify v1.4.9`, `github.com/go-playground/assert/v2 v2.2.0`, `github.com/nxadm/tail v1.4.8`, `github.com/onsi/ginkgo v1.16.5`, `github.com/onsi/gomega v1.18.1`, `golang.org/x/net v0.10.0`, `gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7`
- Updated dependencies: `github.com/gin-gonic/gin` from v1.9.0 to v2.0.0, `golang.org/x/net` from v0.17.0 to v0.10.0
- Removed dependencies: `github.com/golang-jwt/jwt v3.2.2+incompatible`, `github.com/gorilla/websocket v1.5.1`
- Updated Go version from `1.18` to `1.21`
- Made various modifications and refactoring in the code:
- Added new struct `VisionMessage` with fields `Role`, `Content`, and `Name`
- Added constants for certain types
- Added methods and error handling to handle different message types
- Modified existing struct and methods to accommodate changes
- Removed unused imports
- Remove the unnecessary `AddRemainQuota` field from `updateTokenDto` struct
- Adjust `cleanToken.RemainQuota` by subtracting `tokenPatch.AddUsedQuota`
- Increase `cleanToken.UsedQuota` by adding `tokenPatch.AddUsedQuota`
- Update `model.RecordLog` call to include `tokenPatch.AddReason` and `tokenPatch.AddUsedQuota` values
- Add `gorm:"-"` tag to exclude certain fields from the database schema
- Add `AddReason` field to the `updateTokenDto` struct
- Record consumption log if `AddUsedQuota` is non-zero
- Record token quota modification log if `AddRemainQuota` is non-zero
- Update and save `cleanToken` with new values
* fix: change quota calc code (close#599)
Use float64 during calc and do math.Ceil after calc. This will result in the quota being used slightly more than the official standard, but it will be guaranteed that it will not be less.
* chore: remove blank line
---------
Co-authored-by: JustSong <songquanpeng@foxmail.com>
- Added new API endpoints for user information retrieval, registration, login, logout, self-management, administration, options management, channel management, token management, redemption management, log management, and group retrieval
- Improved authentication flow with GitHub, WeChat, and email
- Added a function `GetSelfByToken` for getting user information using an OpenAI API token
- Updated base image in Dockerfile from `node:16` to `node:18`
- Added `tokenPatch` struct to handle updates to the `Token` model
- Updated `UpdateToken` function to use `tokenPatch` struct for binding JSON
- Improved error handling and validation for token updates
- Refined checks for token status, expiration, and quota
- Enhanced error handling and response for token updates
- Updated JSON response to include `data` field