- 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
- Update `COPY_OPTIONS` object in `TokensTable.js`
- Modify the `onCopy` function to use a different url variable
- Fix pagination logic in the `onPaginationChange` function
- Remove unnecessary code and comments in `TokensTable.js`
- 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
* Update sorting method for id
* Update sorting method for id (token)
* Update sorting method for id (redemptions)
* Update sorting method for id (channel)
* chore: use same logic for all tables
---------
Co-authored-by: JustSong <songquanpeng@foxmail.com>
* 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
- Remove prefix "laisky-" from the variable "key" in [middleware/auth.go]
- Modify error message from "用户已被封禁" to "用户已被禁用" in [middleware/auth.go]
- Remove check for "consumeQuota" when request URL starts with "/v1/models" in [middleware/auth.go]
- Add ability for admin users to set "channelId" in context in [middleware/auth.go]
- Update URL and key for `ama` and `opencat` links, and key format for `url` in links in [web/src/components/TokensTable.js]
- Update URL for `nextUrl` in [web/src/components/TokensTable.js]
- Change variable names and improve search function for token names in [web/src/components/TokensTable.js]
- Add delete confirmation popup, copy and open link buttons, sorting functionality for column header, and loading state in [web/src/components/TokensTable.js]
- Update pagination to load more data in [web/src/components/TokensTable.js]
- Update rendering of token information, including quota and timestamp in [web/src/components/TokensTable.js]