- Improved error handling in various modules for better stability and responsiveness.
- Optimized code in several files for improved efficiency and readability.
- Enhanced user experience by providing more detailed error responses in the controller.
- Strengthened security by ignoring sensitive files in `.gitignore`.
- Improved error handling in various modules for better stability and responsiveness.
- Optimized code in several files for improved efficiency and readability.
- Enhanced user experience by providing more detailed error responses in the controller.
- Strengthened security by ignoring sensitive files in `.gitignore`.
- Update `golang.org/x/image` and `golang.org/x/net` to their latest versions.
- Convert the request to the correct request type based on the model.
- Handle the request and response differently depending on the API type.
- Handle all the cases in `relayMode` and `apiType` switch in a consistent manner.
- Retire AI Proxy Library API call pattern.
- Add new cases (Zhipu, Ali, Tencent, Gemini) to generalize the conversion and handling of requests.
- Log the requests if conservation audit is enabled.
* perf: adjust gemini safety settings, set BLOCK_NONE by default
* feat: able to adjust by env variable
---------
Co-authored-by: JustSong <songquanpeng@foxmail.com>
- Fix an error message in getting image bytes from a URL in Gemini.
- Remove safety settings from the Gemini OpenAI request and set all harm categories to block only high.
- Add a log statement about how many images are sent to Gemini vision.
- Add support for getting base64-encoded images via openAI's image_url.
- Add `context` as a parameter for the function `LogError`.
- Handle the error from `image.GetImageFromUrl` by logging it.
- Convert the role to `user` if it is `system` and add a dummy model message to make Gemini happy.
* fix: openai response should contains `model`
- Update model attributes in `claudeHandler` for `relay-claude.go`
- Implement model type for fullTextResponse in `relay-gemini.go`
- Add new `Model` field to `OpenAITextResponse` struct in `relay.go`
* chore: set model name response for models
---------
Co-authored-by: JustSong <songquanpeng@foxmail.com>
* Update relay-ali.go: 改进stream模式,添加联网搜索能力
通义千问支持stream的增量模式,不需要每次去掉上次的前缀;实测qwen-max联网模式效果不错,添加了联网模式。如果别的模型有问题可以改为单独给qwen-max开放
* 删除"stream参数"
刚发现原来阿里api没有这个参数,上次误加了。
* refactor: only enable search when specified
* fix: remove custom suffix when get model ratio
---------
Co-authored-by: JustSong <songquanpeng@foxmail.com>
- Update model attributes in `claudeHandler` for `relay-claude.go`
- Implement model type for fullTextResponse in `relay-gemini.go`
- Add new `Model` field to `OpenAITextResponse` struct in `relay.go`
```
- Refactor relay-text controller to improve readability and maintainability
- Optimize database queries for improved performance
- Update error handling to provide more informative messages
```
- Remove unused import `gorm.io/gorm/logger` from relay-text controller
- Refactor and consolidate related functions in relay-text controller
- Improve error handling in relay-text controller
- Refactor relay-text controller to improve performance and readability
- Update function signatures for better consistency
- Optimize error handling for improved reliability
- Update error logging in relay controller
- Include error summary and request details in error log message
- Improve formatting for more descriptive and comprehensive error log messages
* fest: Add Google Gemini Pro, fix#810
* fest: Add tooling to Gemini; Add OpenAI-like system prompt to Gemini
* refactor: removing unused if statement
* fest: Add dummy model message for system message in gemini model
* chore: update implementation
---------
Co-authored-by: JustSong <songquanpeng@foxmail.com>