Commit Graph
100 Commits
Author SHA1 Message Date
CaIon bbc362c301 fix: add nil check for Writer in FlushWriter function 2025-08-18 12:48:56 +08:00
CaIon 61601d38c4 feat: 完善gemini格式转换 2025-08-17 19:08:06 +08:00
CaIon f181ca254b fix: remove redundant reasoning assignment in ChatCompletionsStreamResponseChoiceDelta 2025-08-17 18:43:31 +08:00
CaIon 3e61e6eb52 refactor: extract FlushWriter function for improved stream flushing 2025-08-17 15:30:31 +08:00
CaIon aad6314c51 fix: improve error handling for image edit form request parsing 2025-08-17 15:18:57 +08:00
CaIon bc6c3042b8 fix: remove unnecessary option from error handling in image request conversion 2025-08-17 15:13:17 +08:00
CaIon 4e3f008ae9 fix: update token usage calculation 2025-08-16 19:11:15 +08:00
CaIon c06d9485c3 feat: add support for Midjourney relay mode based on path prefix 2025-08-16 18:26:26 +08:00
CaIon 3c30b7c4cb fix: refactor processChannelError to use goroutine for asynchronous handling 2025-08-16 15:15:19 +08:00
CaIon 22125a6dd8 fix: correct argument passing in DoDownloadRequest for MIME type retrieval 2025-08-16 15:03:42 +08:00
CaIon 3a90d5054c feat: implement file type detection from URL with enhanced MIME type handling 2025-08-16 14:56:29 +08:00
CaIon 11ce48be47 feat: set API version for Azure and Vertex AI channel types 2025-08-16 14:56:19 +08:00
CaIon 28d381982d Merge remote-tracking branch 'origin/alpha' into alpha 2025-08-16 12:28:46 +08:00
CaIon cf9faeb901 feat: implement concurrent top-up locking mechanism to prevent race conditions 2025-08-15 20:03:38 +08:00
CaIon f8f0ee1e3e feat: initialize channel metadata in mjproxy and relay processing 2025-08-15 19:14:29 +08:00
CaIon f6ee0b9791 feat: add checks for non-empty URLs in file metadata processing 2025-08-15 19:10:40 +08:00
CaIon 0e95efdf34 feat: initialize channel metadata in relay processing 2025-08-15 19:00:16 +08:00
CaIon beb61343cd refactor: comment out SetContextKey to prevent token count meta setting 2025-08-15 18:43:08 +08:00
CaIon 77b100ba2b refactor: update function signatures to include context and improve file handling #1599 2025-08-15 18:40:54 +08:00
CaIon 215546a805 feat: 优化ac自动机 2025-08-15 16:54:26 +08:00
CaIon 63e7fb697f Merge remote-tracking branch 'origin/alpha' into alpha 2025-08-15 16:47:36 +08:00
CaIon 893104a173 refactor: move anthropicKey retrieval to improve authorization handling 2025-08-15 16:08:55 +08:00
CaIon 8284cff9b7 refactor: set prompt tokens when not provided in usage 2025-08-15 15:55:01 +08:00
CaIon e1d36932ae fix panic 2025-08-15 15:15:21 +08:00
CaIon 5084a43aa9 refactor: ensure graceful closure of response body in relay responses 2025-08-15 15:10:54 +08:00
CaIon d849412cf5 refactor: replace json.Marshal and json.Unmarshal with common.Marshal and common.Unmarshal 2025-08-15 14:52:17 +08:00
CaIon 07903b0a8a refactor: improve logging for channel operations with detailed context 2025-08-15 14:15:03 +08:00
CaIon 9da13fdabe refactor: enhance logging messages for user quota handling in pre-consume logic 2025-08-15 14:08:15 +08:00
CaIon 4858e98b2d refactor: simplify domain masking logic by removing URL check 2025-08-15 13:46:46 +08:00
CaIon e0f256506f Merge branch 'alpha' into refactor_relay
# Conflicts:
#	dto/openai_image.go
2025-08-15 13:46:34 +08:00
CaIon 07137e6bb8 refactor: update token type handling and improve token counting logic 2025-08-15 13:28:03 +08:00
CaIon 8eb17f24bb refactor: improve request type validation and enhance sensitive information masking 2025-08-15 13:20:36 +08:00
CaIon dba74e5b05 refactor: add email masking function and enhance RelayInfo logging
This commit introduces a new function, MaskEmail, to mask user email addresses in logs, preventing PII leakage. Additionally, the RelayInfo logging has been updated to utilize this new masking function, ensuring sensitive information is properly handled. The channel test logic has also been improved to dynamically determine the relay format based on the request path.
2025-08-15 12:50:27 +08:00
CaIon 013b30c228 refactor: enhance error handling and masking for model not found scenarios 2025-08-15 12:41:05 +08:00
CaIon f6f9e73fa3 refactor: improve channel base URL handling and enhance RelayInfo logging 2025-08-14 22:15:18 +08:00
CaIon 112de0b6a6 refactor: enhance quota handling and logging for pre-consume operations 2025-08-14 21:30:03 +08:00
CaIon c9e9a24e99 refactor: centralize logging and update resource initialization
This commit refactors the logging mechanism across the application by replacing direct logger calls with a centralized logging approach using the `common` package. Key changes include:

- Replaced instances of `logger.SysLog` and `logger.FatalLog` with `common.SysLog` and `common.FatalLog` for consistent logging practices.
- Updated resource initialization error handling to utilize the new logging structure, enhancing maintainability and readability.
- Minor adjustments to improve code clarity and organization throughout various modules.

This change aims to streamline logging and improve the overall architecture of the codebase.
2025-08-14 21:10:04 +08:00
CaIon 97ea8b6560 refactor: Introduce pre-consume quota and unify relay handlers
This commit introduces a major architectural refactoring to improve quota management, centralize logging, and streamline the relay handling logic.

Key changes:
- **Pre-consume Quota:** Implements a new mechanism to check and reserve user quota *before* making the request to the upstream provider. This ensures more accurate quota deduction and prevents users from exceeding their limits due to concurrent requests.

- **Unified Relay Handlers:** Refactors the relay logic to use generic handlers (e.g., `ChatHandler`, `ImageHandler`) instead of provider-specific implementations. This significantly reduces code duplication and simplifies adding new channels.

- **Centralized Logger:** A new dedicated `logger` package is introduced, and all system logging calls are migrated to use it, moving this responsibility out of the `common` package.

- **Code Reorganization:** DTOs are generalized (e.g., `dalle.go` -> `openai_image.go`) and utility code is moved to more appropriate packages (e.g., `common/http.go` -> `service/http.go`) for better code structure.
2025-08-14 20:05:06 +08:00
CaIon f21353bfbb fix(dalle): update ImageRequest struct to use json.RawMessage for flexible field types 2025-08-12 21:12:00 +08:00
CaIon b850f94139 fix(auth): refine authorization header setting for messages endpoint #1575 2025-08-12 20:42:44 +08:00
CaIon c7281a353f fix(env): update STREAMING_TIMEOUT default value to 300 seconds 2025-08-12 19:58:04 +08:00
CaIon 1382ec4f20 fix(adaptor): optimize multipart form handling and resource management 2025-08-12 19:57:56 +08:00
CaIon 219ed0d1cf fix(database): improve MySQL Chinese character support validation 2025-08-12 16:31:00 +08:00
CaIon 9625ee2d55 fix(relay): remove unnecessary channel type check for BadRequest 2025-08-12 16:12:47 +08:00
CaIon 5b8382a6ab Merge remote-tracking branch 'origin/alpha' into alpha 2025-08-12 14:13:34 +08:00
CaIon a423ee3dd1 feat(database): enhance MySQL support for Chinese characters
- Added a check for MySQL charset/collation to ensure compatibility with Chinese characters during database initialization.
- Updated SQLite busy timeout from 5000ms to 30000ms for improved performance.
- Removed commented-out PostgreSQL migration logic for clarity.
2025-08-12 14:12:11 +08:00
CaIon 32978f9cd9 feat: Simplify response handling by returning raw response body directly 2025-08-11 20:07:24 +08:00
CaIon ce74e94fc7 feat: Refactor Gemini tools handling to support JSON raw message format 2025-08-11 19:48:04 +08:00
CaIon a80ecb8896 feat: Refactor model handling to use UpstreamModelName for request processing 2025-08-11 17:32:58 +08:00
CaIon 37f0383941 feat: Update request URL handling for Claude relay format in adaptor #1557 2025-08-11 17:17:56 +08:00
CaIon c9b276c604 Merge remote-tracking branch 'origin/alpha' into alpha
# Conflicts:
#	relay/channel/openai/adaptor.go
2025-08-11 16:35:23 +08:00
CaIon be77f3d763 feat: Update Azure responses API version handling in adaptor 2025-08-11 16:34:07 +08:00
CaIon 7ffbff88f1 feat: Update request URL handling for Azure responses based on base URL 2025-08-10 21:09:16 +08:00
CaIon 8907e5cf6d feat: Add ChannelOtherSettings to manage additional channel configurations 2025-08-10 20:21:30 +08:00
CaIon 54f470bc46 feat: Enhance EditChannelModal with JSONEditor key updates and input reset
- Added unique keys for JSONEditor components to ensure proper re-rendering based on channelId.
- Implemented input reset to clear previous JSON field values when the modal is opened.
2025-08-10 12:22:18 +08:00
CaIon 991a09f47a feat: update Fluent Read link handling in sidebar to improve chat item filtering 2025-08-09 21:06:25 +08:00
CaIon 4abe75faed feat: remove custom JSON marshaling for Message struct 2025-08-09 21:04:49 +08:00
CaIon 5a3f011ac2 feat: enhance JSON marshaling for Message and skip Fluent Read links in chat items 2025-08-09 20:58:28 +08:00
CaIon 4bbdc8e2b2 feat: add verbosity field to OpenAI request #1540 2025-08-09 20:12:27 +08:00
CaIon 4c0c9ffd0a feat: add AWS invoke error handling and new error code 2025-08-09 19:26:41 +08:00
CaIon 20575e798a feat: improve FluentRead notification handling and user prompts 2025-08-09 18:37:08 +08:00
CaIon a5b4c2f7b5 feat: add FluentRead support in chat configuration 2025-08-09 18:26:45 +08:00
CaIon 8e52b42c0a feat: update channel label to indicate deprecation and suggest alternative 2025-08-09 17:51:54 +08:00
CaIon f2dbdbc445 feat: update relay-text to conditionally include usage based on StreamOptions #696 2025-08-09 17:51:49 +08:00
CaIon 8c4f0e6992 Merge remote-tracking branch 'origin/alpha' into alpha 2025-08-09 17:02:20 +08:00
CaIon 2fb3e265f6 feat: enhance TokensPage and useTokensData to support Fluent integration and notifications 2025-08-09 17:02:06 +08:00
CaIon 05af05e449 feat: add system prompt override functionality in channel settings and request handling #1468 2025-08-09 12:53:06 +08:00
CaIon b3a1948a7b feat: enhance AddAbilities and BatchInsertChannels to support transaction handling 2025-08-08 18:36:09 +08:00
CaIon 9682c46cc4 feat: implement moonshot adaptor for request handling and response processing 2025-08-08 17:28:21 +08:00
CaIon 5b5b97eb30 feat: 完善格式抓换,修复gemini渠道和openai渠道在claude code中使用的问题 2025-08-08 16:45:37 +08:00
CaIon f69a4f7153 feat: enhance request handling to support tool calls and improve stream options 2025-08-08 13:47:39 +08:00
CaIon e81113e488 feat: add support for openrouter reasoning efforts in request handling 2025-08-08 13:04:33 +08:00
CaIon b555ac092d fix: playground group 2025-08-08 11:59:04 +08:00
CaIon c833e07ee3 feat: add support for gpt-5 models and adjust temperature settings
- Updated the model list to include various gpt-5 variants.
- Enhanced the ConvertOpenAIRequest function to handle gpt-5 model temperature settings based on specific model prefixes.
- Adjusted default cache and model ratios for new gpt-5 models.
2025-08-08 10:43:07 +08:00
CaIon ef2bed2fe7 feat: enhance Adaptor to support multiple relay modes in request handling 2025-08-07 19:30:42 +08:00
CaIon deb6fbbe21 feat: implement ConvertClaudeRequest method in baidu_v2 Adaptor 2025-08-07 19:19:59 +08:00
CaIon b8b59a134e feat: support deepseek claude format (convert) 2025-08-07 19:01:49 +08:00
CaIon d37af13b33 feat: support qwen claude format 2025-08-07 18:32:31 +08:00
CaIon c4666934be Revert "feat: update Usage struct to support dynamic token handling with ceil function #1503"
This reverts commit 97b8d7de9e.
2025-08-07 16:22:40 +08:00
CaIon a4b02107dd feat: update MaxTokens handling 2025-08-07 16:15:59 +08:00
CaIon 97b8d7de9e feat: update Usage struct to support dynamic token handling with ceil function #1503 2025-08-07 15:40:12 +08:00
CaIon 2e41362f2e fix: update budget calculation logic in relay-gemini to use clamping function 2025-08-06 16:25:48 +08:00
CaIon 6960a06322 feat: enhance ThinkingAdaptor with effort-based budget clamping and extra body handling 2025-08-06 16:20:38 +08:00
CaIon 4f6d16e365 feat: add reasoning support for Openrouter requests with "-thinking" suffix 2025-08-06 12:50:26 +08:00
CaIon f3a961f071 fix: reorder request URL handling for relay formats in Adaptor 2025-08-05 20:40:00 +08:00
CaIon 755acc6191 feat: implement channel-specific locking for thread-safe polling 2025-08-04 20:44:19 +08:00
CaIon 5e47da1a8e feat: improve layout and pagination handling in MultiKeyManageModal 2025-08-04 20:16:51 +08:00
CaIon 808c8c5bcb feat: add status filtering and bulk enable/disable functionality in multi-key management 2025-08-04 19:51:58 +08:00
CaIon 8fe43be3eb fix: correct option value for pagination in MultiKeyManageModal 2025-08-04 19:33:24 +08:00
CaIon 1ecd8b41d8 feat: enhance multi-key management with pagination and statistics 2025-08-04 17:15:32 +08:00
CaIon aeec39a198 feat: add multi-key management 2025-08-04 16:52:31 +08:00
CaIon 1f9134cd6b feat: add support for multi-key channels in RelayInfo and access token caching 2025-08-02 22:12:15 +08:00
CaIon f4f73016bf fix: improve error handling and readability in ability.go 2025-08-02 14:06:12 +08:00
CaIon fad5fc3f7d feat: truncate abilities table before processing channels 2025-08-02 13:39:53 +08:00
CaIon 8ceda7b95f feat: add caching for keys in channel structure and retain polling index during sync 2025-08-02 13:16:30 +08:00
CaIon 316c0a594e feat: retain polling index for multi-key channels during sync 2025-08-02 13:04:48 +08:00
CaIon f0b024eb77 feat: enhance ConvertGeminiRequest to set default role and handle YouTube video MIME type 2025-08-02 12:53:58 +08:00
CaIon 7d4c9955f1 feat: add recordErrorLog option to NewAPIError for conditional error logging 2025-08-02 11:07:50 +08:00
CaIon 2d4149c5dc feat: implement key mode for multi-key channels with append/replace options 2025-08-02 10:57:03 +08:00
CaIon 52f419bc3b feat: add admin info to error logging with multi-key support 2025-08-01 18:19:28 +08:00