Compare commits

...

199 Commits

Author SHA1 Message Date
Vaayne
1e8251a05e add model catalogs 2025-07-06 21:27:27 +08:00
tommyzhang100504
c5d1f2dd7a 使自动更新版本号更健壮 (#7864) 2025-07-06 20:31:08 +08:00
one
8ab4682519 fix: hide scrollbars on capturing (#7867) 2025-07-06 19:51:59 +08:00
one
84b4ae0634 chore: update readme badges (#7888) 2025-07-06 19:50:47 +08:00
SuYao
8de304accf fix: model recognize (#7887)
* fix(image generation): model recognize

* fix(grok): disable off option
2025-07-06 19:50:18 +08:00
Phantom
ed9ecd4667 fix(MCPSettings): ensure save button only restarts MCP server if it is running (#7869)
fix(MCPSettings): 修复服务器状态更新逻辑错误

仅在服务器激活时尝试重启,避免不必要的操作
2025-07-06 17:34:06 +08:00
Phantom
4c81efc5b3 fix(LMStudioSettings): prevent negative values in keepAliveMinutes input (#7868)
fix(LMStudioSettings): 修复keepAliveMinutes输入为负数的问题

确保输入值通过Math.floor处理且最小值为0,避免负数输入
2025-07-06 15:42:22 +08:00
one
a4620f8c68 refactor(ApiKeyList): add a popup for api key list (#7491)
* refactor(ApiKeyList): add a popup for api key list

- ApiKeyList for key management
- ApiKeyListPopup triggerred by a button
- Move formatApiKeys to utils for better reuse
- Simplify apikey related states in ProviderSettings for better
  integration with ApiKeyList
- Modify `updateProvider` to accept partial updates
- Update api key placeholder

* fix: strict type

* refactor: support websearch provider

* refactor: remove ApiCheckPopup

* refactor: simplify interfaces for ProviderSetting and WebSearchProviderSetting

* fix: sync input api key between sub-pages, futher simplification

* fix: bold title

* refactor: extract status icon colors

* refactor: add a status indicator to input box on error, update type definitions

* refactor: further simplification, make data flow clearer

* feat: support api key list for preprocess settings

* refactor: better naming, less confusion
2025-07-06 15:10:44 +08:00
SuYao
bf7e713eec fix: qwen3 empty think block (#7873) 2025-07-06 14:40:55 +08:00
Phantom
c25f1f856a fix(QuickPhrasesButton): resolve QuickPhrases database error (#7872)
fix(QuickPhrasesButton): 修复依赖assistant导致的频繁更新报错问题
2025-07-06 14:22:06 +08:00
Jason Young
60a3cac80d fix: improve abortController robustness with defensive programming (#7856) 2025-07-06 14:18:03 +08:00
Jason Young
a1304054ce test: add comprehensive unit tests for asyncInitializer and copy utilities (#7858)
* test: add unit tests for asyncInitializer and copy utilities

- Add tests for asyncInitializer class functionality
- Add tests for clipboard copy operations

* refactor(test): improve copy.test.ts structure and maintainability

- Remove complex shared testCopyFunction in favor of individual test cases
- Simplify mock cleanup by removing redundant afterEach
- Split test scenarios into focused, independent test cases
- Improve test readability with clear Chinese comments
- Maintain full test coverage while following TEST_UTILS.md guidelines
- Fix minor formatting in asyncInitializer.test.ts

* test: remove unnecessary test cases

- Remove AsyncInitializer type support test
- Remove maintain separate instances test
- These tests verify language features rather than business logic

* refactor(test): reorganize copy and export test structure

Restructure test organization based on PR review feedback:

- Move export functionality tests from copy.test.ts to export.test.ts
- Remove unnecessary "clipboard API not available" test
- Merge duplicate empty content tests for better coverage
- Add boundary tests for special characters and Markdown formatting
- Fix ESLint formatting issues

Test responsibilities are now clearer:
- copy.test.ts: Focus on clipboard operations (8 tests)
- export.test.ts: Focus on content conversion and edge cases

* fix(test): correct markdown formatting test for list items

Fix the regex pattern to properly handle markdown list items.
Replace  with separate patterns to avoid removing
the dash from list items incorrectly.

* fix(test): format prettier style for markdown test
2025-07-06 04:51:41 +08:00
fullex
a567666c79 docs: add testplan md (#7854) 2025-07-05 17:19:25 +08:00
one
1ebf546b70 chore: fix vite warning on dynamic imports (#7852) 2025-07-05 15:08:02 +08:00
Jason Young
19e9ba773f test: add comprehensive tests for CopyIcon and MinAppIcon components (#7833)
* test: add comprehensive tests for CopyIcon and MinAppIcon components

- Add tests for CopyIcon covering default rendering, className merging, and prop passing
- Add tests for MinAppIcon covering default props, custom size, sidebar mode, styles, and edge cases
- Include snapshot tests for both components

* fix: update test snapshots after component styling changes

Update snapshots for CopyIcon and MinAppIcon components to match current
styled-components implementation (replaces inline styles with generated classes).

* refactor: simplify icon component tests based on PR review feedback

- CopyIcon: replace multiple redundant tests with single snapshot test
- MinAppIcon: remove duplicate test that overlaps with snapshot test
- Keep essential business logic tests for MinAppIcon (sidebar behavior, null return)
- Update test snapshots accordingly
2025-07-05 13:28:33 +08:00
SuYao
619aadce41 fix(models): update glm-4 model regex for improved matching (#7793)
- Changed the glm-4 model entry to use a regex pattern for better flexibility in version matching, allowing for optional version numbers and suffixes.
2025-07-05 13:25:19 +08:00
beyondkmp
a924da10c2 fix(WindowService): update default window dimensions to improve user experience (#7789)
- Changed the default width from 1080 to 960 and height from 670 to 600 for the main window.
- Adjusted minimum width and height settings to match the new defaults, enhancing compatibility with various screen sizes.
2025-07-05 00:13:22 +08:00
Konv Suu
ee4c4b16ec fix(message-group): revert grid layout to use min-width (#7830) 2025-07-04 23:56:22 +08:00
one
f8c221f51a fix(CodePreview): line height rounding (#7835) 2025-07-04 23:55:31 +08:00
one
2a48babd50 fix: update websearch i18n, allow more search results (#7797) 2025-07-04 23:50:42 +08:00
Chen Tao
e5d94d9a53 fix(MinerU): remove check quota (#7804)
fix: remove check quota
2025-07-04 17:47:52 +08:00
beyondkmp
8cfe6a5848 feat(settings): add option to disable hardware acceleration (#7811)
* feat(settings): add option to disable hardware acceleration

- Introduced a new setting to allow users to disable hardware acceleration.
- Added corresponding IPC channel and configuration management methods.
- Updated UI components to reflect the new setting and prompt for app restart.
- Localized confirmation messages for hardware acceleration changes in multiple languages.

* fix(settings): add delay before relaunching app after disabling hardware acceleration

- Introduced a 500ms delay before the application relaunches to ensure settings are applied correctly.
- This change improves user experience by allowing time for the setting to take effect before the app restarts.

* fix lint

* fix(settings): handle errors when disabling hardware acceleration

- Wrapped the hardware acceleration disabling function in a try-catch block to manage potential errors.
- Added user feedback through an error message if the operation fails, improving overall robustness.
2025-07-04 17:19:22 +08:00
SuYao
134ea51b0f fix: websearch block and citation formatting (#7776)
* feat: enhance citation handling for Perplexity web search results

- Implemented formatting for Perplexity citations in MainTextBlock, including data-citation attributes.
- Updated citation processing in message store and thunk to support new citation structure.
- Added utility functions for link completion based on web search results.
- Enhanced tests to verify correct handling of Perplexity citations and links.

* refactor: streamline chunk processing in OpenAIApiClient

- Replaced single choice handling with a loop to process all choices in the chunk.
- Improved handling of content sources, ensuring fallback mechanisms are in place for delta and message fields.
- Enhanced tool call processing to accommodate missing function names and arguments.
- Maintained existing functionality for web search data and reasoning content processing.

* fix: improve citation handling and web search integration

- Enhanced citation formatting to support legacy data compatibility in messageBlock.ts.
- Updated messageThunk.ts to manage main text block references and citation updates more effectively.
- Removed unnecessary web search flag and streamlined block processing logic.

* fix: improve citation transforms to skip code blocks
- Add withCitationTags for better code structure
- Add tests
- Remove outdated code
- The Citation type in @renderer/types/index.ts is not referenced anywhere, so removed
- Move the actual Citation type from @renderer/pages/home/Messages/CitationsList.tsx to @renderer/types/index.ts
- Allow text selecting in tooltip

* test: update tests

* refactor(messageThunk): streamline citation handling in response processing

- Removed redundant citation block source retrieval during text chunk processing.
- Updated citation references handling to ensure proper inclusion only when available.
- Simplified the logic for managing citation references in both streaming and final text updates.

* refactor: simplify determineCitationSource for backward compatibility

---------

Co-authored-by: one <wangan.cs@gmail.com>
2025-07-04 17:03:45 +08:00
MyPrototypeWhat
2fad7c0ff6 refactor(messageThunk): streamline loading state management for topics (#7809)
* refactor(messageThunk): streamline loading state management for topics

- Reintroduced the handleChangeLoadingOfTopic function to manage loading states more effectively.
- Updated thunk implementations to ensure loading state is correctly set after message processing.
- Removed commented-out code for clarity and maintainability.

* fix(messageThunk): ensure loading state is managed correctly after message sending

- Added a finally block to guarantee that the loading state is updated after the sendMessage thunk execution.
- Removed commented-out code for improved clarity and maintainability.
2025-07-04 16:07:13 +08:00
Konv Suu
985859f1c3 feat(message-group): improve layout style (#7803) 2025-07-04 12:57:17 +08:00
one
d7f2ebcb6e perf(CodePreview): virtual list for shiki code block (#7621)
* perf(CodePreview: virtual list for shiki code block

- move code highlighting to a hook
- use @tanstack/react-virtual dynamic list for CodePreview
- highlight visible items on demand

* refactor: change absolute position to relative position

* refactor: update shiki styles, set scrollbar color for shiki themes
2025-07-04 03:11:30 +08:00
Calcium-Ion
e3057f90ea feat: add NewAPI provider (#7774)
* feat(provider): add NewAPI provider

* feat(providers): Enhance New API model discovery and configuration

This commit refactors the model fetching mechanism for the "New API" provider to improve user experience and support more detailed model information.

The `NewAPIClient` now fetches models directly from the `/models` endpoint, which provides richer metadata, including a new `supported_endpoint_types` field.

Key changes:
- The "Edit Models" popup now automatically adds a model if its `supported_endpoint_types` are provided by the API, using the first available type.
- The manual "Add Model" popup is now a fallback for models that do not declare their endpoint types.
- A new `NewApiModel` type is introduced to handle the structured API response.
- Added support for the `jina-rerank` endpoint type.

* chore(store): update version to 119 and adjust migration function for state management

* fix: adjust label column flex for New API provider in ModelEditContent and NewApiAddModelPopup

* feat: Implement batch adding for New API provider

* feat: Add useDynamicLabelWidth hook for adaptive label widths in forms and fix localization typos

* fix: update dependencies in various components to include translation function

---------

Co-authored-by: 自由的世界人 <3196812536@qq.com>
2025-07-04 01:22:22 +08:00
kangfenmao
244a42f3be chore(docs): update README files and remove Japanese version
- Updated the English and Chinese README files to improve layout and add new language options.
- Removed the Japanese README file as part of the documentation cleanup.
- Enhanced badge visibility and adjusted image sizes for better presentation.
- Added GitHub statistics section to provide insights into project activity.
2025-07-04 01:15:31 +08:00
Jason Young
8c06a87582 test: add comprehensive tests for IndicatorLight and Spinner components (#7781)
- Add tests for IndicatorLight component covering size, color conversion, shadow, and animation props
- Add tests for Spinner component with proper motion/react mocking
- Include snapshot tests for both components
2025-07-04 00:54:11 +08:00
kangfenmao
637019b0a8 chore(version): 1.4.8 2025-07-03 23:57:14 +08:00
kangfenmao
e3775b13a6 style: update modal close margin and adjust settings layout
- Added margin to the modal close button for improved spacing.
- Removed unnecessary divider in OCR settings for a cleaner layout.
- Set a minimum width for the search max result title to enhance alignment and readability.
2025-07-03 23:47:53 +08:00
kangfenmao
7fae55863e refactor(llm, migrate): reorganize PH8 provider configuration and migration logic
- Moved the PH8 provider configuration within the INITIAL_PROVIDERS array for better structure.
- Updated migration logic to ensure the PH8 provider is added and positioned correctly in the state during configuration migration.
- Removed redundant code related to provider initialization in the migration process, streamlining the overall logic.
2025-07-03 23:28:18 +08:00
kangfenmao
52d6c372ed fix(i18n): add provider key confirmation messages in multiple languages
- Added new localization strings for provider API key management, including confirmation and error messages for existing keys.
- Updated English, Japanese, Russian, Simplified Chinese, and Traditional Chinese localization files to reflect these changes, enhancing user experience and clarity in API key operations.
2025-07-03 23:16:40 +08:00
kangfenmao
3bced85fc3 refactor(AddKnowledgePopup): streamline settings panel and enhance advanced options
- Removed the left menu and integrated settings directly into the main panel for a more cohesive user experience.
- Introduced a toggle for advanced settings, allowing users to expand or collapse additional configuration options.
- Updated layout and styling for improved usability, including adjustments to padding and margins.
- Enhanced scroll behavior for the advanced settings section to ensure visibility when expanded.
- Minor adjustments to component imports and state management for better performance and clarity.
2025-07-03 23:16:40 +08:00
littleRiceZhou
f163ace86c feat: add PH8 provider support (#7756)
- Introduced PH8 provider with configuration and logo.
- Updated SYSTEM_MODELS to include PH8 models.
- Added PH8 to internationalization files for multiple languages.
- Implemented migration logic to integrate PH8 into the existing provider structure.

Co-authored-by: jack.li <jack.li@enflame-tech.com>
2025-07-03 23:16:25 +08:00
Chen Tao
25d6a1f02f HotFix: QuotaTag 循环调用 (#7788) 2025-07-03 18:22:29 +08:00
SuYao
9847db5c83 HotFix/dexie error (#7778)
* fix(dexieError): initialize database connection before fetching phrases

- Added an `init` method to the `QuickPhraseService` to ensure the Dexie database is opened before retrieving all quick phrases.
- Updated the `getAll` method to call the `init` method, improving reliability in data retrieval.

* fix(QuickPhraseService): ensure database initialization before updating phrases

- Added calls to the `init` method in the `update` and `updateOrder` methods to guarantee the database connection is established before performing updates, enhancing data integrity and reliability.

* fix(QuickPhraseService): prevent multiple database initializations

- Added a static flag to ensure the database initialization occurs only once, preventing redundant calls to the `init` method and improving performance.
2025-07-03 17:48:25 +08:00
fullex
4c353f4eee fix(SelectionAssistant): [macOS] enable AXAPI in Chrome and Electron Apps (#7782)
* feat(SelectionAssistant): add macOS support and process trust handling

- Updated the selection assistant to support macOS, including new IPC channels for process trust verification.
- Enhanced the SelectionService to check for accessibility permissions on macOS before starting the service.
- Added user interface elements to guide macOS users in granting necessary permissions.
- Updated localization files to reflect macOS support and provide relevant user instructions.
- Refactored selection-related configurations to accommodate both Windows and macOS environments.

* feat(SelectionService): update toolbar window settings for macOS and Windows

- Set the toolbar window to be hidden in Mission Control and accept the first mouse click on macOS.
- Adjusted visibility settings for the toolbar window to ensure it appears correctly on all workspaces, including full-screen mode.
- Refactored the MacProcessTrustHintModal component to improve layout and styling of buttons in the modal footer.

* feat(SelectionToolbar): enhance styling and layout of selection toolbar components

* feat(SelectionService): enhance toolbar window settings and refactor position calculation

* feat(SelectionToolbar): update button padding and add last button padding for improved layout

* chore(dependencies): update selection-hook to version 1.0.2 and refine build file exclusions in electron-builder.yml

* feat(SelectionService): center action window on screen when not following toolbar

* fix(SelectionService): implement workaround to prevent other windows from bringing the app to front on macOS when action window is closed

* fix(SelectionService): refine macOS workaround to prevent other windows from bringing the app to front when action window is closed; update selection-toolbar logo padding in styles

* fix(SelectionService): implement macOS toolbar reload to clear hover status; optimize display retrieval logic

* fix(SelectionService): update macOS toolbar hover status handling by sending mouseMove event instead of reloading the window

* chore: update selection-hook dependency to version 1.0.3 in package.json and yarn.lock

* fix(SelectionService): improve toolbar visibility handling on macOS and ensure focusability of other windows when hiding the toolbar

* chore: update selection-hook dependency to version 1.0.4 in package.json and yarn.lock

---------

Co-authored-by: Teo <cheesen.xu@gmail.com>
2025-07-03 17:06:02 +08:00
Tristan Zhang
870f794796 fix(messageThunk): handle missing user message in response creation (#7375)
* fix(messageThunk): handle missing user message in response creation

* fix(i18n): add missing user message translations

* fix(messageThunk): show error popup for missing user message instead of creating error block

* fix(messageThunk): validate askId and show error popup for missing user message

---------

Co-authored-by: suyao <sy20010504@gmail.com>
2025-07-03 17:03:45 +08:00
Chen Tao
e35b4d9cd1 feat(knowledge): support doc2x, mistral, MacOS, MinerU... OCR (#3734)
Co-authored-by: suyao <sy20010504@gmail.com>
Co-authored-by: 亢奋猫 <kangfenmao@qq.com>
2025-07-03 16:23:02 +08:00
SuYao
1afbb30bfc fix(migrate): enable stream output for existing assistants in migrati… (#7772)
fix(migrate): enable stream output for existing assistants in migration process

- Updated the migration logic to set the default streamOutput setting to true for assistants that do not have this property defined, enhancing the user experience by ensuring consistent behavior across all assistants.
2025-07-03 15:26:09 +08:00
fullex
2f016efc50 feat: SelectionAssistant macOS version / 划词助手macOS版 (#7561)
* feat(SelectionAssistant): add macOS support and process trust handling

- Updated the selection assistant to support macOS, including new IPC channels for process trust verification.
- Enhanced the SelectionService to check for accessibility permissions on macOS before starting the service.
- Added user interface elements to guide macOS users in granting necessary permissions.
- Updated localization files to reflect macOS support and provide relevant user instructions.
- Refactored selection-related configurations to accommodate both Windows and macOS environments.

* feat(SelectionService): update toolbar window settings for macOS and Windows

- Set the toolbar window to be hidden in Mission Control and accept the first mouse click on macOS.
- Adjusted visibility settings for the toolbar window to ensure it appears correctly on all workspaces, including full-screen mode.
- Refactored the MacProcessTrustHintModal component to improve layout and styling of buttons in the modal footer.

* feat(SelectionToolbar): enhance styling and layout of selection toolbar components

* feat(SelectionService): enhance toolbar window settings and refactor position calculation

* feat(SelectionToolbar): update button padding and add last button padding for improved layout

* chore(dependencies): update selection-hook to version 1.0.2 and refine build file exclusions in electron-builder.yml

* feat(SelectionService): center action window on screen when not following toolbar

* fix(SelectionService): implement workaround to prevent other windows from bringing the app to front on macOS when action window is closed

* fix(SelectionService): refine macOS workaround to prevent other windows from bringing the app to front when action window is closed; update selection-toolbar logo padding in styles

* fix(SelectionService): implement macOS toolbar reload to clear hover status; optimize display retrieval logic

* fix(SelectionService): update macOS toolbar hover status handling by sending mouseMove event instead of reloading the window

* chore: update selection-hook dependency to version 1.0.3 in package.json and yarn.lock

* fix(SelectionService): improve toolbar visibility handling on macOS and ensure focusability of other windows when hiding the toolbar

---------

Co-authored-by: Teo <cheesen.xu@gmail.com>
2025-07-03 14:31:31 +08:00
one
cd1ef46577 chore: remove dependency updates (#7743) 2025-07-03 14:05:35 +08:00
beyondkmp
c79ea7d5ad fix: cannot move data dir in linux (#7643)
* fix: cannot move data dir in linux

* delete verion info in path

---------

Co-authored-by: beyondkmp <beyondkmp@debian12.beyondkmp.com>
2025-07-03 13:07:13 +08:00
beyondkmp
01fc98b221 fix(AboutSettings): don't throw a notification when switch to the about page (#7688)
refactor(AboutSettings): streamline test channel change handling

- Moved the test channel change logic into a dedicated function to improve clarity and maintainability.
- Removed the useEffect hook that was previously monitoring changes, simplifying the component's structure.
2025-07-03 11:42:02 +08:00
GuanMu
6c0b614208 feat: Add code linting plugin support to the Electron configuration (#7740)
* feat: 添加代码检查插件支持到 Electron 配置中,并更新依赖项

* test: Update snapshots to reflect the latest changes in component rendering

- Updated snapshots for DragableList, Scrollbar, CitationTooltip, Markdown, Table, and ThinkingBlock components by adding new data attributes to support debugging and testing.
- Ensured snapshots are consistent with the latest component rendering, improving test accuracy and reliability.

* test: 更新快照以反映组件渲染的最新变化

- 更新了 DragableList、Scrollbar、CitationTooltip、Markdown、Table 和 ThinkingBlock 组件的快照,移除了多余的数据属性以简化调试和测试。
- 确保快照与最新的组件渲染一致,提高了测试的准确性和可靠性。
2025-07-03 10:36:54 +08:00
beyondkmp
0218bf6c89 refactor(ProviderSettings): add provider key by urlScheme (#7529)
* refactor(ProviderSettings): streamline API key management and enhance user experience

- Refactored the handleProvidersProtocolUrl function to simplify API key handling and improve navigation logic.
- Updated the useProviders hook to maintain consistency in provider management.
- Enhanced the ApiKeyList component with improved state handling and user feedback for API key validation.
- Updated localization files to reflect changes in API key management and user interactions.
- Improved styling and layout for better visual consistency across provider settings.

* fix(ProviderSettings): enhance confirmation modal title with provider name

- Updated the confirmation modal title in the ProvidersList component to include the provider's display name, improving clarity for users during API key management.

* update info

* udpate line

* update line

* feat(Protocol): add custom protocol handling for Cherry Studio

- Introduced a new protocol handler for 'cherrystudio' in the Electron app, allowing the application to respond to custom URL schemes.
- Updated the electron-builder configuration to register the 'cherrystudio' protocol.
- Enhanced the main application logic to handle incoming protocol URLs effectively, improving user experience when launching the app via custom links.

* feat(ProviderSettings): enhance provider data handling with optional fields

- Updated the handleProviderAddKey function to accept optional 'name' and 'type' fields for providers, improving flexibility in provider management.
- Adjusted the API key handling logic to utilize these new fields, ensuring a more comprehensive provider configuration.
- Enhanced the URL schema documentation to reflect the changes in provider data structure.

* delete apikeylist

* restore apiService

* support utf8

* feat(Protocol): improve URL handling for macOS and Windows

- Added caching for the URL received when the app is already running on macOS, ensuring it is processed correctly.
- Updated the URL processing logic in handleProvidersProtocolUrl to replace characters for proper decoding.
- Simplified base64 decoding in ProviderSettings to enhance readability and maintainability.

* fix start in macOS

* format code

* fix(ProviderSettings): validate provider data before adding

- Added validation to ensure 'id', 'newApiKey', and 'baseUrl' are present before proceeding with provider addition.
- Implemented error handling to notify users of invalid data and redirect them to the provider settings page.

* feat(Protocol): enhance URL processing for versioning

- Updated the URL handling logic in handleProvidersProtocolUrl to support versioning by extracting the 'v' parameter.
- Added logging for version 1 to facilitate future enhancements in handling different protocol versions.
- Improved the processing of the 'data' parameter for better compatibility with the updated URL schema.

* feat(i18n): add provider API key management translations for Japanese, Russian, and Traditional Chinese

- Introduced new translations for API key management features, including confirmation prompts and error messages related to provider API keys.
- Enhanced user experience by providing localized strings for adding, updating, and validating API keys across multiple languages.

---------

Co-authored-by: rcadmin <rcadmin@rcadmins-MacBook-Pro-4.local>
2025-07-03 05:10:18 +08:00
one
8355ed2fa5 chore: update i18n script (#7729) 2025-07-02 22:59:18 +08:00
one
c290906bd9 chore: update markdown-related packages (#7745) 2025-07-02 22:33:02 +08:00
自由的世界人
cf9175c408 fix: i18n missing & model select options (#7760) 2025-07-02 21:16:24 +08:00
亢奋猫
575d6fa91b fix: clear cached web search and knowledge references in BaseApiClient (#7759) 2025-07-02 20:51:47 +08:00
Phantom
fb624cc368 chore: Disable auto-organize imports on save (#7744)
chore: 禁用保存时自动整理导入功能
2025-07-02 19:29:08 +08:00
亢奋猫
7ed6e58f8e refactor: new knowledge base ui layout (#7748) 2025-07-02 17:34:19 +08:00
one
38497597b9 fix: migrate version (#7757) 2025-07-02 17:30:36 +08:00
Jason Young
d0ebdf460f test: add tests for DividerWithText and EmojiIcon components (#7747)
* test: add tests for DividerWithText and EmojiIcon components

- Add DividerWithText test covering basic rendering, styling and edge cases
- Add EmojiIcon test for emoji/icon rendering, tooltips and size customization

* test: add snapshot tests for DividerWithText and EmojiIcon components

- 为 DividerWithText 和 EmojiIcon 组件添加快照测试
- 优化测试用例,移除过度测试的 DOM 结构验证
- 增加对 size 和 fontSize props 的样式验证
- 遵循项目测试规范,使用标准的 toMatchSnapshot()

* test: remove duplicate background test in EmojiIcon

移除重复的背景元素测试
2025-07-02 16:29:29 +08:00
亢奋猫
df47b174ca feat(AppUpdater): integrate User-Agent generation for autoUpdater req… (#7751)
* feat(AppUpdater): integrate User-Agent generation for autoUpdater requests; add systemInfo utility module

* feat(systemInfo): enhance macOS version handling using macos-release package for improved accuracy; update package.json and yarn.lock to include macos-release and opendal dependencies
2025-07-02 16:18:44 +08:00
cnJasonZ
561c563bd7 PPIO OAuth Login (#7717)
* feat: integrate PPIO OAuth login support

Add OAuth authentication support for PPIO provider with complete integration:
- Add PPIO OAuth configuration and client ID
- Implement oauthWithPPIO authentication flow
- Add PPIO to OAuth and charge-supported providers list
- Include PPIO logo and UI components for OAuth settings
- Support charge and billing URL redirects for PPIO

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: fix url

* fix: fix redirect url

* feat: add PPIO OAuth login

* fix: migrate

* fix: migrate

* fix: ppio migrate

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-02 15:49:37 +08:00
自由的世界人
d5e8ffc00f fix: add custom prompt setting for translate model (#7623)
* fix: add custom prompt setting for translate model

Introduces a UI section in TranslateSettings to allow users to view and edit the custom prompt for the translation model. The prompt is now saved to the database and can be toggled for display in the settings modal.

* fix: add reset button for translate prompt and improve prompt editing

Introduced a reset button to restore the translate prompt to its default value. Updated the prompt editing area to use local state, improved UI with a rounded Textarea, and ensured prompt changes are dispatched to the store.

* refactor: bidirectional settings layout in TranslatePage

Removed unnecessary margin and conditional wrapper for the bidirectional settings. The Space component is now only rendered when bidirectional mode is enabled, improving layout clarity and reducing extra DOM nesting.

* Update TranslatePage.tsx
2025-07-02 15:23:58 +08:00
亢奋猫
9f29194180 refactor: Restructure the knowledge base directory (#7754)
重构知识库目录结构,代码逻辑完全不变

├── embeddings
│   ├── Embeddings.ts
│   ├── EmbeddingsFactory.ts
│   └── VoyageEmbeddings.ts
├── loader
│   ├── draftsExportLoader.ts
│   ├── epubLoader.ts
│   ├── index.ts
│   ├── noteLoader.ts
│   └── odLoader.ts
└── reranker
    ├── BaseReranker.ts
    ├── GeneralReranker.ts
    └── Reranker.ts

4 directories, 11 files
2025-07-02 15:23:02 +08:00
one
a7abebc8f4 fix: remove opendal (#7753) 2025-07-02 15:03:31 +08:00
kangfenmao
19212e576f Revert "feat: Add S3 Backup (#6802)"
This reverts commit 3f5901766d.

# Conflicts:
#	src/renderer/src/i18n/locales/zh-cn.json
#	src/renderer/src/i18n/locales/zh-tw.json
2025-07-02 13:22:33 +08:00
Phantom
990ec5cd5c fix(MessageMenubar): Add check for empty relatedUserMessageBlocks to prevent errors (#7733)
* fix(MessageMenubar): 修复未找到相关用户消息块时的处理逻辑

添加对relatedUserMessageBlocks为空的检查,避免后续逻辑报错

* fix(MessageMenubar): 修复检查消息块类型时的空引用问题
2025-07-02 11:34:53 +08:00
beyondkmp
4b92a5ef1e chore: update electron dependency to version 35.6.0 in package.json and yarn.lock (#7730) 2025-07-02 10:57:30 +08:00
one
8d9ac7299a chore(ci): update dependabot (#7725) 2025-07-02 10:22:17 +08:00
kangfenmao
6a2e04aaeb Revert "fix(WindowService): remove backgroundThrottling option for cleaner window configuration (#7704)"
This reverts commit 3eb6d08b34.
2025-07-02 10:04:14 +08:00
SuYao
83f36f5e77 refactor(WebSearchMiddleware, linkConverter): enhance link processing and buffering logic (#7724)
- Updated WebSearchMiddleware to utilize the new smartLinkConverter structure, allowing for better handling of buffered content and fallback logic.
- Introduced flushLinkConverterBuffer function to clear remaining buffered content at stream end.
- Modified convertLinks and smartLinkConverter functions to return structured results indicating whether content was buffered.
- Enhanced unit tests to cover new functionality and edge cases for link conversion and buffering behavior.
2025-07-02 03:03:03 +08:00
Jason Young
f58378daa0 test: add comprehensive tests for CopyButton component (#7719)
* test: add comprehensive tests for CopyButton component

- Add tests for basic rendering and functionality
- Add clipboard API mocking and error handling
- Add tests for custom props (size, tooltip, label)
- Add edge case testing (empty text, special characters)
- Improve component test coverage

Signed-off-by: Jason Young <farion1231@gmail.com>

* fix: resolve linting issues in CopyButton tests

- Sort imports alphabetically
- Remove trailing whitespace
- Add final newline

Signed-off-by: Jason Young <farion1231@gmail.com>

* refactor: consolidate similar test cases in CopyButton tests

- Merge 'should render copy icon' and 'should render with basic structure'
- Merge 'should apply custom size to icon' and 'should apply custom size to label'
- Reduce test duplication while maintaining full coverage
- Address maintainer feedback for better test organization

Signed-off-by: Jason Young <farion1231@gmail.com>

---------

Signed-off-by: Jason Young <farion1231@gmail.com>
2025-07-01 23:37:44 +08:00
kangfenmao
ba21a2c5fa refactor(EmojiIcon): enhance EmojiIcon component to accept size and fontSize props for better customization; update styles accordingly.
fix(AddAssistantPopup): adjust body padding for improved layout consistency.

style(Messages): modify padding in ScrollContainer for better spacing; add missing line for groupedMessages.

style(Prompt): update padding and margin for improved layout aesthetics.
2025-07-01 20:10:04 +08:00
beyondkmp
3eb6d08b34 fix(WindowService): remove backgroundThrottling option for cleaner window configuration (#7704) 2025-07-01 16:50:48 +08:00
SuYao
b5f2abc930 fix: update default timeout configuration across API clients (#7686)
- Increased the default timeout value from 5 minutes to 10 minutes in constant.ts.
- Updated GeminiAPIClient and ImageGenerationMiddleware to utilize the new defaultTimeout constant for API call timeouts, ensuring consistent timeout handling across the application.
2025-07-01 15:09:12 +08:00
Teo
0c3720123d feat(TopicsHistory): add sorting functionality for topics and update UI components (#7673)
* feat(TopicsHistory): add sorting functionality for topics and update UI components

* refactor(assistants): remove console log from updateTopicUpdatedAt function

* refactor(TopicsHistory): update topic date display to use dynamic sorting type
2025-07-01 14:52:52 +08:00
亢奋猫
4aa77d5a82 doc: Developer Co-creation Program 2025-07-01 14:31:53 +08:00
Wang Jiyuan
f500cc6c9a refactor(inputbar): enforce image upload and model mentioning restrictions (#7314)
* feat(inputbar): feat: enforce image upload restrictions
- allow image uploads when mentioning vision models
- disallow image uploads when non-vision models are mentioned

* refactor(Inputbar): improve handleDrop

* fix(Inputbar): Quick panel does not refresh when file changes

* fix(AttachmentButton): Fix the conditional judgment logic when mentionedModels is optional

* stash

* fix(Inputbar): Fix the issue where quickPanel does not close when files are updated

Use useRef to track changes in files, ensuring that quickPanel is properly closed when files are updated

* refactor(Inputbar): 重构附件按钮和工具条逻辑,简化文件类型支持判断

将文件类型支持判断逻辑从组件中提取到父组件,通过props传递couldAddImageFile和extensions
移除不必要的依赖和计算,优化组件性能

* fix(Inputbar): 修正文件上传逻辑并重命名快速面板方法

修复couldAddTextFile条件判断错误
将openQuickPanel重命名为openAttachmentQuickPanel以明确功能

* feat(MessageEditor): 添加基于话题ID的文件类型限制功能

根据关联消息的模型类型动态限制可添加的文件类型

* fix(MessageEditor): 仅在用户消息时显示附件按钮

根据消息角色决定是否显示附件按钮,避免非用户消息出现不必要的附件功能

* feat(MessageMenu): 添加模型筛选功能以支持视觉模型选择

根据关联消息内容动态筛选可提及的模型
当用户消息包含图片时仅显示视觉模型

* fix: 修复模型过滤器默认值处理

修复SelectModelPopup组件中modelFilter未传入时的默认值处理,使用默认值会导致卡死

* feat(输入栏): 添加模型集合功能并优化文件类型支持

添加 isVisionModels 和 isGenerateImageModels 工具函数用于判断模型集合
优化输入栏对文件类型的支持逻辑,重命名 supportExts 为 supportedExts
移除调试日志并简化模型支持判断逻辑

* refactor(Inputbar): 移除未使用的model属性并优化代码结构

清理AttachmentButton和InputbarTools组件中未使用的model属性
优化MessageEditor中的状态管理,使用useAppSelector替代store.getState
修复拼写错误(failback -> fallback)
2025-07-01 12:35:02 +08:00
Wang Jiyuan
68d0b13a64 fix: Ensure tool call results are included in the conversation context (#7463)
* refactor(aiCore): 统一消息内容处理逻辑,优化工具调用结果显示

重构各AI客户端的消息内容处理逻辑,使用新的getContentWithTools函数统一处理
将blocks参数重命名为block以符合语义
使用MessageBlockType枚举替代硬编码字符串

* fix(aiCore): 修复工具调用结果消息的格式问题

调整工具调用结果消息的换行格式,使其显示更清晰

* refactor(aiCore): 将getContentWithTools工具函数移至messageUtils模块

重构代码,将getContentWithTools函数从aiCore/clients/utils.ts移动到messageUtils/find.ts模块中
统一消息处理工具函数的存放位置,提高代码组织性
删除不再使用的utils.ts文件

* refactor(aiCore): 统一使用getMessageContent获取消息内容

将各API客户端中直接调用getContentWithTools改为通过基类的getMessageContent方法获取消息内容,保持行为一致性

* fix(find): 移除冗余的条件判断
2025-07-01 12:34:11 +08:00
SuYao
c37176fe98 refactor(APIClients): apply custom parameters conditionally for chat scenarios to avoid affecting other functionalities (#7702) 2025-07-01 12:26:11 +08:00
beyondkmp
421b4071d6 fix(WindowService): remove backgroundThrottling option for improved window configuration (#7699) 2025-07-01 11:02:59 +08:00
Teo
1e20780c36 refactor(Messages): enhance ImageBlockGroup to dynamically adjust grid columns based on block count (#7678)
* refactor(Messages): enhance ImageBlockGroup to dynamically adjust grid columns based on block count

* fix(ImageBlock): update maxHeight style to use responsive value for better layout
2025-07-01 10:30:51 +08:00
Xin Rui
acbe8c7605 feat(TranslatePage): replace ReactMarkdown with MarkdownIt. (#7545)
* feat(TranslatePage): replace ReactMarkdown with MarkdownIt.

* fix: line wrapping in plain text and shiki code block

---------

Co-authored-by: one <wangan.cs@gmail.com>
2025-07-01 01:42:25 +08:00
Teo
ad0b10c517 style(antd): Optimize antd components through patch method (#7683)
* fix(dependencies): update antd to patch version 5.24.7 and apply custom patch

* refactor(AddAgentPopup): remove unused ChevronDown import

* feat(AntdProvider): add paddingXS to Dropdown component for improved layout
2025-06-30 20:40:32 +08:00
beyondkmp
8c657b57f7 feat: add country flag emoji support and enhance UI components (#7646)
* feat: add country flag emoji support and enhance UI components

* Added country-flag-emoji-polyfill to package.json and yarn.lock
* Integrated polyfill in AddAgentPopup, GeneralSettings, and AssistantPromptSettings components
* Updated emoji rendering styles for better visual consistency

* fix: update country flag emoji polyfill to use 'Twemoji Country Flags'

* feat: enhance emoji components with country flag support

* Integrated country-flag-emoji-polyfill in EmojiIcon, EmojiPicker, and AssistantItem components.
* Updated font-family styles across various components for consistent emoji rendering.
* Removed redundant polyfill calls from AddAgentPopup and AssistantPromptSettings.

* refactor: streamline country flag emoji integration

* Removed redundant polyfill calls from EmojiIcon, AssistantItem, and GeneralSettings components.
* Updated EmojiPicker to use a local font file for country flag emojis.
* Added country flag font import in index.scss for improved styling consistency.

* format code

* refactor: standardize country flag font usage across components

* Introduced a new CSS class for country flag font to streamline styling.
* Updated various components (GeneralSettings, EmojiIcon, EmojiAvatar, AssistantPromptSettings, TranslatePage) to utilize the new class for consistent font application.
* Removed inline font-family styles to enhance maintainability.

* refactor: update font styles for improved consistency and maintainability

* Added Windows-specific font configuration in font.scss for better emoji rendering.
* Removed inline font-family styles from various components (EmojiAvatar, GeneralSettings, AssistantPromptSettings, TranslatePage) to enhance code clarity and maintainability.

* refactor: remove inline font-family styles from EmojiIcon for improved maintainability
2025-06-30 20:23:22 +08:00
beyondkmp
ac03aab29f chore(package): add opendal dependency to package.json (#7685) 2025-06-30 17:04:48 +08:00
Teo
db4ce9fb7f fix(Inputbar): fix enter key confict (#7679)
fix(Inputbar): prevent default behavior for Enter key when quick panel is visible
2025-06-30 16:13:25 +08:00
SuYao
21ba35b6bf fix(ImageGenerationMiddleware): read image binary data (#7681)
- Replaced direct API call for reading binary images with FileManager's readBinaryImage method to streamline image handling in the ImageGenerationMiddleware.
2025-06-30 15:17:05 +08:00
SuYao
a9a9d884ce Fix/gemini (#7659)
* refactor: update Gemini and OpenAI API clients for improved reasoning model handling

- Replaced isGeminiReasoningModel with isSupportedThinkingTokenGeminiModel in GeminiAPIClient for better model validation.
- Enhanced OpenAIAPIClient to support additional configurations for reasoning efforts and thinking budgets based on model type.
- Introduced new thinking tags for Gemini models in ThinkingTagExtractionMiddleware.
- Updated model checks in models.ts to streamline reasoning model identification.
- Adjusted ThinkingButton component to differentiate between Gemini and Gemini Pro models based on regex checks.

* refactor(GeminiAPIClient): streamline reasoning configuration handling

- Simplified the logic for returning thinking configuration when reasoningEffort is undefined in GeminiAPIClient.
- Updated ApiService to include enableReasoning flag for API calls, enhancing control over reasoning capabilities.

* fix(OpenAIAPIClient): add support for non-flash Gemini models in reasoning configuration

- Introduced a check for non-flash models in the OpenAIAPIClient to enhance reasoning configuration handling for supported Gemini models.
- This change ensures that reasoning is correctly configured based on the model type, improving overall model validation.
2025-06-30 13:51:23 +08:00
Wang Jiyuan
1034b94628 fix(translate): improve language options with clearer values (#7640)
* fix(翻译配置): 修正简体中文语言选项的值和标签显示

将'chinese'改为更明确的'chinese-simplified'

* style(translate): 统一语言选项的显示格式为规范名称
2025-06-30 10:43:19 +08:00
cnJasonZ
4c988ede52 Feat/ppio rerank (#7567)
* feat: add PPIO rerank and embedding models

* fix: fix migrate.ts

* fix: set ppio provider type to openai

* fix: remove 'ppio' from ProviderType definition

---------

Co-authored-by: suyao <sy20010504@gmail.com>
2025-06-30 10:16:22 +08:00
David Zhang
7b7819217f chore(OpenAIApiClient): handle empty delta objects in non-streaming esponses (#7658)
chore(OpenAIApiClient): handle empty delta objects in non-streaming responses
2025-06-30 03:14:58 +08:00
SuYao
b0053b94a9 fix(models): enhance Doubao model checks to include model.id conditions (#7657)
- Updated model checks in isFunctionCallingModel, isEmbeddingModel, isVisionModel, and isReasoningModel functions to consider model.id for 'doubao' provider.
- Improved isOpenAIWebSearchModel to include additional conditions for model.id.
2025-06-30 00:15:36 +08:00
Yiyang Suen
218dcc2229 fix: textarea not resizing back after clearing long input (#7609) (#7632)
* fix: textarea not resizing back after clearing long input (#7609)

* fix: text area auto size only when not dragged
2025-06-30 00:01:28 +08:00
beyondkmp
8f64c5ab6a feat: support linux deb (#7652) 2025-06-29 23:58:24 +08:00
Kingsword
9a4c69579d fix: restore message content className logic to resolve search issue (#7651) 2025-06-29 21:32:05 +08:00
Xin Rui
486c5c42f7 chore: format zh-cn and zh-tw i18n strings with pangu. (#7644) 2025-06-29 20:47:17 +08:00
George·Dong
3f5901766d feat: Add S3 Backup (#6802)
* chore: import opendal

* feat: 添加S3备份支持及相关设置界面

- 在IpcChannel中新增S3备份相关IPC事件,支持备份、恢复、
  列表、删除文件及连接检测
- 在ipc主进程注册对应的S3备份处理函数,集成backupManager
- 新增S3设置页面,支持配置Endpoint、Region、Bucket、AccessKey等
  参数,并提供同步和备份策略的UI控制
- 删除未使用的RemoteStorage.ts,简化代码库

提升备份功能的灵活性,支持S3作为远程存储目标

* feat(S3 Backup): 完善S3备份功能

- 支持自动备份
- 优化设置前端
- 优化备份恢复代码

* feat(i18n): add S3 storage translations

* feat(settings): 优化数据设置页面和S3设置页面UI

* feat(settings): optimize S3 settings state structure and update usage

* refactor: simplify S3 backup and restore modal logic

* feat(s3 backup): improve S3 settings defaults and modal props

* fix(i18n): optimize S3 access key translations

* feat(backup): optimize logging and progress reporting

* fix(settings): set S3 maxBackups as unlimited by default

* chore(package): restore opendal dependency in package.json

---------

Co-authored-by: suyao <sy20010504@gmail.com>
2025-06-28 22:19:37 +08:00
kangfenmao
27d22e90d4 chore(version): 1.4.7 2025-06-28 20:38:53 +08:00
Kingsword
101d73fc10 ♻️ refactor(ContentSearch): ContentSearch to use CSS highlights API (#7493) 2025-06-28 20:04:03 +08:00
one
8de6ae1772 fix(Menubar): icon for multi select (#7635) 2025-06-28 19:00:26 +08:00
beyondkmp
ece59cfacf fix(migrate): handle state return in migration process and add upgradechannel setting (#7634)
* fix(migrate): handle state return in migration process and add upgrade channel setting

* fix(migrate): move upgrade channel setting to the correct migration step
2025-06-28 17:52:36 +08:00
beyondkmp
780373d5f7 fix: 测试版本 (#7590)
* feat(AppUpdater): add support for pre-release versions and enhance feed URL logic

- Introduced a new FeedUrl for the lowest pre-release version.
- Updated AppUpdater to handle early access and upgrade channel settings more effectively.
- Enhanced IPC logging for early access and upgrade channel changes.
- Refactored feed URL setting logic to streamline update processes.

* fix(AppUpdater, ipc): enhance early access and upgrade channel handling

- Added checks to prevent unnecessary cancellation of downloads when early access and upgrade channel settings remain unchanged.
- Updated IPC handlers to ensure early access is enabled when switching upgrade channels if it was previously disabled.
- Improved logging for better traceability of changes in early access and upgrade channel settings.

* delete code

* delete logs

* refactor(AboutSettings): enhance upgrade channel management

- Introduced logic to determine the current upgrade channel based on version.
- Refactored available test channels to use a more structured approach with tooltips and labels.
- Updated the method for retrieving available test channels to improve clarity and maintainability.

* feat(IpcChannel, ConfigManager, AppUpdater): implement test plan and channel management

- Replaced early access features with test plan and test channel options in IpcChannel and ConfigManager.
- Updated IPC handlers to manage test plan and test channel settings, including logging enhancements.
- Refactored AppUpdater to support fetching pre-release versions based on the selected test channel.
- Modified settings and localization files to reflect the new test plan functionality.
- Adjusted AboutSettings and related components to integrate test plan management and improve user experience.

* format code

* refactor(AppUpdater, AboutSettings): improve test channel logic and localization updates

- Refactored the logic in AppUpdater to enhance the handling of test channels, ensuring correct channel retrieval based on the current version.
- Updated the AboutSettings component to include useEffect for managing test channel changes and displaying appropriate warnings.
- Modified localization files for multiple languages to clarify the behavior of test version switching, aligning with the new logic.
2025-06-28 17:17:47 +08:00
SuYao
dfcebe9767 fix(models): update regex patterns for Doubao models and enhance function checks (#7624)
- Adjusted regex for visionAllowedModels and DOUBAO_THINKING_MODEL_REGEX to allow for optional suffixes.
- Enhanced isFunctionCallingModel and isDoubaoThinkingAutoModel functions to check both model.id and model.name for better matching.
2025-06-28 16:58:17 +08:00
自由的世界人
daaf9c2b06 fix: move ContentSearch below Messages in Chat layout (#7628)
Reordered the ContentSearch component to render after the Messages component within the Chat page. This change likely improves the UI flow by displaying the search functionality below the chat messages.
2025-06-28 16:51:49 +08:00
happyZYM
83b95f9830 fix: restore strict no-think for Openrouter provider with latest api (#7620) 2025-06-28 16:45:54 +08:00
beyondkmp
cf87a840f7 fix(FileStorage): remove redundant WordExtractor import (#7625) 2025-06-28 16:45:02 +08:00
Wang Jiyuan
49653435c2 fix(models): Add inference model detection for qwen-plus and qwen-turbo (#7622)
feat(models): 添加对qwen-plus和qwen-turbo模型的推理模型判断
2025-06-28 14:10:55 +08:00
beyondkmp
14e31018f7 fix: support spell check for mini app (#7602)
* feat(IpcChannel): add Webview_SetSpellCheckEnabled channel and implement spell check handling for webviews

- Introduced a new IPC channel for enabling/disabling spell check in webviews.
- Updated the registerIpc function to handle spell check settings for all webviews.
- Enhanced WebviewContainer to set spell check state on DOM ready event.
- Refactored context menu setup to accommodate webview context menus.

* refactor(ContextMenu): update methods to use Electron.WebContents instead of BrowserWindow

- Changed method signatures to accept Electron.WebContents for better context handling.
- Updated internal calls to utilize the new WebContents reference for toggling dev tools and managing spell check functionality.

* refactor(WebviewContainer): clean up import order and remove unused code

- Adjusted the import order in WebviewContainer.tsx for better readability.
- Removed redundant import of useSettings to streamline the component.
2025-06-28 08:36:32 +08:00
Wang Jiyuan
2d3f5baf72 feat: Increase the upper limit of web search results (#7439)
* fix(WebSearchSettings): 将最大搜索结果限制从20增加到50

* fix(WebSearchSettings): 调整搜索结果滑块宽度并添加50的标记
2025-06-27 22:33:27 +08:00
one
c7c1cf2552 refactor: increase css editor height, fix EditMcpJsonPopup (#7535)
* refactor: increase css editor height

* fix: lint warnings

* refactor: use vh for height

* fix: editmcpjsonpopup editor unavailable after deleting all the code
2025-06-27 21:53:43 +08:00
Chen Tao
98b12fb800 fix: tei reranker (#7606)
fix(tei)
2025-06-27 18:07:17 +08:00
one
d463d6ea2e feat(WebSearch): support RAG for external websearch, improve feedback (#7446)
* feat(WebSearch, RAG): support RAG for external websearch

* refactor(WebSearch): handle content limit in service

* refactor: update migrate

* refactor: UI, constants, types

* refactor: migrate contentLimit to cutoffLimit

* refactor: update default rag document count

* refactor: add a helper function for merging references

* refactor: reference filtering

* feat: feedback for websearch phases

* feat: support cutoff by token

* refactor: add a warning and fix the bound of cutoff limit

* fix: not pass `dimensions` if it is not set by the user

* refactor: update i18n and error message

* refactor: improve UI

* fix: cutoff unit style
2025-06-27 18:04:42 +08:00
Wei Lin
1fe439bb51 docs: add 20 language links of README (#7611)
PR adds 20 languages link to the README and user can easily to access translated READEME, supports google/bing multiple languages SEO search.

Page demo https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ja

> OpenAiTx is free and open-source : https://github.com/OpenAiTx/OpenAiTx

![Image](https://github.com/user-attachments/assets/41c79fad-5f63-4ed3-8d48-99f3b89879ba)
2025-06-27 18:02:37 +08:00
one
3726ceaf48 refactor: use useLayoutEffect for shiki renderer 2025-06-27 17:56:19 +08:00
one
639ddd5628 refactor: add ShikiTokensRendererProps 2025-06-27 17:56:19 +08:00
one
16772c1d37 refactor(CodePreview): line numbers as elements 2025-06-27 17:56:19 +08:00
one
766897e733 refactor: show error on missing mcp tool (#7587) 2025-06-27 16:09:06 +08:00
one
e8e9a2d86f fix(Markdown, LaTeX): do not touch escaped brackets (#7582)
- Keep `\\[` as is
- Use a custom match algorithm rather than balanced match
2025-06-27 13:46:09 +08:00
Wang Jiyuan
a6b53457b0 fix(models): Resolve case sensitivity issue with model names (#7595)
* fix(models): 修复模型名称大小写敏感问题

确保在检查支持的禁用生成模型时,将模型名称统一转换为小写进行比较

* feat(utils): 添加获取小写基础模型名称的函数

新增 getLowerBaseModelName 函数,用于从模型ID中提取基础名称并转换为小写
替换多处直接调用 getBaseModelName().toLowerCase() 的代码,提高代码复用性
2025-06-27 13:45:15 +08:00
Teo
093d04c386 fix(Selector): Fix the issue with the Selector component being selected. (#7600)
* fix(Selector): update value comparison logic to use 'some' for selected values

* feat(ModelSettings): add ChevronDown icon as suffix for Select components
2025-06-27 12:15:39 +08:00
kangfenmao
46de46965f chore(version): 1.4.6 2025-06-26 18:19:27 +08:00
Teo
f5165e12f1 fix(Messages): Fix single model response style issue (#7560)
* fix(Messages): update multiModelMessageStyle condition to check message count

* style(Messages): update styles for MultiSelectionPopup and MessageGroup components
2025-06-26 17:05:48 +08:00
亢奋猫
0160655dba feat(FileStorage): enhance open dialog to handle large files by retur… (#7568)
feat(FileStorage): enhance open dialog to handle large files by returning size without reading content

- Updated the open method to return file size for files larger than 2GB without reading their content.
- Modified return type to include an optional content field and size property for better file handling.

修复恢复备份的时候选择超过 2GB 文件报错的问题
2025-06-26 16:48:56 +08:00
one
8723bbeaf8 fix(Markdown): falsely early return for display \[\n...\n\] (#7565) 2025-06-26 15:52:58 +08:00
beyondkmp
4c66b205bb feat: implement early access feature toggle and update related configurations (#7304)
* feat: implement early access feature toggle and update related configurations

- Replace FeedUrl with EnableEarlyAccess in IpcChannel and ConfigManager
- Update AppUpdater to handle early access updates from GitHub
- Modify settings and localization files to reflect early access functionality
- Ensure proper integration in the renderer and preload layers

* fix: enhance error handling in AppUpdater for GitHub release fetching

- Wrap the fetch call in a try-catch block to handle potential errors when retrieving the latest non-draft version from GitHub.
- Log an error message if the fetch fails and return a default feed URL.

* refactor: remove early access feature handling from AppUpdater

- Eliminate the early access feature toggle logic from the AppUpdater class.
- Adjust the feed URL setting to ensure it retrieves the latest non-draft version from GitHub when applicable.
- Clean up unnecessary user-agent header in the fetch request.

* feat(AppUpdater): enhance update feed URL logic and disable differential downloads

- Introduced a new private method to streamline feed URL setting based on early access and IP country.
- Disabled differential downloads for compatibility with GitHub and GitCode.
- Cleaned up the checkForUpdates method for better readability and maintainability.

* refactor(AppUpdater): simplify early access feed URL logic

- Consolidated the feed URL setting logic in setEnableEarlyAccess to a single line for improved readability.
- Removed redundant conditional checks while maintaining functionality for early access updates.

* refactor(AppUpdater): update feed URL structure and remove early access setting

- Modified the return structure of the latest release URL to include the channel type.
- Removed the early access setting from the IPC handler, streamlining the update process.
- Ensured the autoUpdater channel is set based on the latest release information.

* feat(UpgradeChannel): add upgrade channel management and IPC integration

- Introduced a new UpgradeChannel enum to manage different upgrade paths (latest, rc, beta).
- Updated IpcChannel to include App_SetUpgradeChannel for setting the upgrade channel.
- Enhanced ConfigManager to store and retrieve the selected upgrade channel.
- Modified AppUpdater to fetch pre-release versions based on the selected upgrade channel.
- Updated settings UI to allow users to select their preferred upgrade channel with tooltips for guidance.
- Localized new strings for upgrade channel options in multiple languages.

* refactor(AboutSettings): update version type detection and localize upgrade channel tooltips

- Changed version type detection to use the UpgradeChannel enum for better clarity.
- Localized success messages for switching upgrade channels to enhance user experience.

* chore: update version to 1.4.4-beta.1 and refactor upgrade channel handling in AboutSettings

- Updated package version to 1.4.4-beta.1.
- Renamed version type detection function to getVersionChannel for clarity.
- Refactored available version options to getAvailableTestChannels for better organization.
- Added logic to clear update info when switching upgrade channels and when toggling early access settings.

* chore: update version to 1.4.4 in package.json

* fix lint error

* feat(AppUpdater): enhance upgrade channel management and localization

- Added cancellation functionality for ongoing downloads in AppUpdater.
- Introduced a new upgrade channel option for the latest stable version.
- Updated IPC handlers to cancel downloads when changing early access settings or upgrade channels.
- Localized new strings for the latest version option in multiple languages.
- Refactored AboutSettings to include the latest version in the upgrade channel selection.

* refactor(AboutSettings): remove version channel detection logic

- Eliminated the getVersionChannel function to simplify version handling.
- Updated AboutSettings to streamline upgrade channel management.

* feat(AboutSettings): set default upgrade channel to latest

- Updated the AboutSettings component to set the default value of the upgrade channel to the latest option, enhancing user experience in channel selection.

* refactor(AboutSettings): simplify upgrade channel change handling

- Removed individual success messages for different upgrade channels in the handleUpgradeChannelChange function, streamlining the code and improving maintainability.

* refactor: file actions into FileAction service (#7413)

* refactor: file actions into FileAction service

Moved file sorting, deletion, and renaming logic from FilesPage to a new FileAction service for better modularity and reuse. Updated FileList and FilesPage to use the new service functions, and improved the delete button UI in FileList.

* fix: add tag collapse state management for assistants (#7436)

Add tag collapse state management for assistants

Introduces a collapsedTags state to manage the collapsed/expanded state of tag groups in the assistants list. Updates useTags and AssistantsTab to use this state, and adds actions to toggle and initialize tag collapse in the Redux store.

* fix(model): doubao thinking param (#7499)

* feat: Implement occupied directories handling during data copy (#7485)

* feat: Implement occupied directories handling during data copy

- Added `occupiedDirs` constant to manage directories that should not be copied.
- Enhanced the `copyOccupiedDirsInMainProcess` function to copy occupied directories to a new app data path in the main process.
- Updated IPC and preload APIs to support passing occupied directories during the copy operation.
- Modified the DataSettings component to utilize the new copy functionality with occupied directories.

* fix: Improve occupied directories handling during data copy

- Updated the filter logic in the `registerIpc` function to resolve directory paths correctly.
- Modified the `DataSettings` component to pass the correct occupied directories format during the copy operation.

* feat: add appcode (#7507)

Co-authored-by: zhaochenxue <zhaochenxue@bixin.cn>

* fix: non streamoutput sometimes (#7512)

* feat(migrate): add default settings for assistants during migration

- Introduced a new migration step to assign default settings for assistants that lack configuration.
- Default settings include temperature, context count, and other parameters to ensure consistent behavior across the application.

* chore(store): increment version number to 115 for persisted reducer

* Revert "feat: Update API Key Management Interface (#3444)"

This reverts commit 31b3ce1049.

* feat:  一些UI上的优化和重构 (#7479)

- 调整AntdProvider中主题配置,包括颜色、尺寸
- 重构聊天气泡模式的样式
- 重构多选模式的样式
- 添加Selector组件取代ant Select组件
- 重构消息搜索弹窗界面
- 重构知识库搜索弹窗界面
- 优化其他弹框UI

* fix: bailian reranker (#7518)

* feat: implement Python MCP server using existing Pyodide infrastructure (#7506)

* refactor: rename isWindows to isWin for consistency across main/renderer (#7530)

refactor: rename isWindows to isWin for consistency across components

* refactor: data migration modal logic in DataSettings (#7503)

* refactor: data migration modal logic in DataSettings

Moved showProgressModal and startMigration functions inside the useEffect hook and added t as a dependency. This improves encapsulation and ensures translation updates are handled correctly.

* remove trailing whitespace in DataSettings.tsx

Cleaned up a line by removing unnecessary trailing whitespace in the DataSettings component.

* fix: clear search cache on resending (#7510)

* fix: Resolve vllm bad request caused by always sending dimensions in embedding requests (#7525)

fix(知识库): 将dimensions字段改为可选并修复相关逻辑

* feat: Support custom registry address when configuring mcp for npm & fix lint error (#7531)

* feat: Support custom registry address when configuring mcp for npm

* fix: lint

* refactor(GeminiAPIClient): separate model and user message handling to adapt vertex (#7511)

- Introduced a new modelParts array to manage model-related messages separately from user messages.
- Updated the logic to push model messages to currentReqMessages only if they exist, improving clarity and structure.
- Adjusted the return order of messages in buildSdkMessages to ensure history is appended correctly.
- Enhanced McpToolChunkMiddleware to reset tool processing state output when output is present.

* feat: enhance WindowFooter with show/hide functionality for UI elements

- Added state management to control visibility of UI elements in the WindowFooter.
- Implemented a timer to automatically hide elements after a period of inactivity.
- Updated hotkey handlers to reset the visibility timer on user interaction.
- Modified styled component to reflect the new visibility logic.

* fix(SelectionAssistant): opacity slider too slow when sliding in settings page (#7537)

feat: enhance opacity control in Selection Assistant Settings

- Added state management for opacity value in SelectionAssistantSettings component.
- Updated Slider component to use the new opacity state instead of the previous actionWindowOpacity variable.
- Ensured onChangeComplete updates the actionWindowOpacity accordingly.

* feat(AihubmixAPIClient): add getBaseURL method to handle client base URL retrieval

* fix(migrate): restore upgradeChannel setting in migration logic

- Reintroduced the upgradeChannel setting to the state during the migration process, ensuring it defaults to LATEST when applicable.
- Adjusted the migration logic to maintain consistency in settings management.

---------

Co-authored-by: 自由的世界人 <3196812536@qq.com>
Co-authored-by: one <wangan.cs@gmail.com>
Co-authored-by: chenxue <DDU1222@users.noreply.github.com>
Co-authored-by: zhaochenxue <zhaochenxue@bixin.cn>
Co-authored-by: SuYao <sy20010504@gmail.com>
Co-authored-by: kangfenmao <kangfenmao@qq.com>
Co-authored-by: Teo <cheesen.xu@gmail.com>
Co-authored-by: Chen Tao <70054568+eeee0717@users.noreply.github.com>
Co-authored-by: LiuVaayne <10231735+vaayne@users.noreply.github.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Co-authored-by: Wang Jiyuan <59059173+EurFelux@users.noreply.github.com>
Co-authored-by: 陈天寒 <silenceboychen@gmail.com>
Co-authored-by: fullex <0xfullex@gmail.com>
2025-06-26 15:43:45 +08:00
one
6342998c9f feat(MentionedModels): improve feedback for MessageGroupModelList (#7539)
* feat(MentionedModels): improve feedback for MessageGroupModelList

* refactor: reuse pulse animation, fix tooltip triggering area

* refactor: use lightbulbSoftVariants
2025-06-26 15:01:36 +08:00
suyao
f555e604a3 fix(models): update isReasoningModel function to exclude embedding models
- Added a check to the isReasoningModel function to return false for embedding models, ensuring correct model classification.
2025-06-26 13:32:32 +08:00
one
5811adfb7f refactor(CodePreview): handle chunking in ShikiStreamService, make the algorithm more robust (#7409)
* refactor(ShikiStreamService, CodePreview): handle chunking in ShikiStreamService, make the algorithm more robust

- Add highlightStreamingCode with improved robustness
- Improve viewport detection

* perf: improve checks for appending

* chore: update comments
2025-06-26 13:30:49 +08:00
亢奋猫
1db93e8b56 Fix anthropic request cannot handle webSearch and knowbase references (#7559)
修复 Anthropic 模型请求忽略了知识库和网络搜索引用内容的问题
2025-06-26 13:19:36 +08:00
亢奋猫
3048d0850c fix: Gemini reasoning model check and improve citation popover structure (#7554)
- Added a new condition to the Gemini reasoning model check to include models with IDs starting with 'gemini' and containing 'thinking'.
- Refactored the CitationsList component to improve the structure of popover content for web search and knowledge citations.
- Updated styled components for better layout and responsiveness in the citation popover.
- Adjusted margin styles in ErrorBlock for consistent spacing.
2025-06-26 12:00:31 +08:00
Teo
08a526e511 style: 优化消息滚动条 (#7549)
* feat(Messages): integrate Scrollbar component into Message and MessageGroup styled containers

* style(Messages): add margin-top to MessageFooter for improved layout

* fix(SelectionToolbar): update regex to remove background styles more accurately
2025-06-26 11:42:12 +08:00
one
5e0cae06db fix(CodeEditor): save to db (#7504) 2025-06-26 11:19:11 +08:00
fullex
1f09c8a022 refactor(SelectionAssistant): make all Toolbar CSS variables customizable (#7532)
refactor: update selection toolbar styles and structure

- Enhanced the selection toolbar's HTML structure for better readability.
- Updated CSS variables for improved theming and consistency across the toolbar.
- Refactored the styled components in SelectionToolbar.tsx to utilize new CSS variables for layout and styling.
- Added support for hover states and improved button styling for better user experience.
2025-06-26 10:17:09 +08:00
suyao
751879d42e feat(AihubmixAPIClient): add getBaseURL method to handle client base URL retrieval 2025-06-26 01:30:55 +08:00
fullex
5f2d0d4bfc fix(SelectionAssistant): opacity slider too slow when sliding in settings page (#7537)
feat: enhance opacity control in Selection Assistant Settings

- Added state management for opacity value in SelectionAssistantSettings component.
- Updated Slider component to use the new opacity state instead of the previous actionWindowOpacity variable.
- Ensured onChangeComplete updates the actionWindowOpacity accordingly.
2025-06-26 01:16:17 +08:00
fullex
3d535d0e68 feat: enhance WindowFooter with show/hide functionality for UI elements
- Added state management to control visibility of UI elements in the WindowFooter.
- Implemented a timer to automatically hide elements after a period of inactivity.
- Updated hotkey handlers to reset the visibility timer on user interaction.
- Modified styled component to reflect the new visibility logic.
2025-06-25 22:56:48 +08:00
SuYao
9362304db0 refactor(GeminiAPIClient): separate model and user message handling to adapt vertex (#7511)
- Introduced a new modelParts array to manage model-related messages separately from user messages.
- Updated the logic to push model messages to currentReqMessages only if they exist, improving clarity and structure.
- Adjusted the return order of messages in buildSdkMessages to ensure history is appended correctly.
- Enhanced McpToolChunkMiddleware to reset tool processing state output when output is present.
2025-06-25 22:16:27 +08:00
陈天寒
17a8f0a724 feat: Support custom registry address when configuring mcp for npm & fix lint error (#7531)
* feat: Support custom registry address when configuring mcp for npm

* fix: lint
2025-06-25 21:37:10 +08:00
Wang Jiyuan
066aad7fed fix: Resolve vllm bad request caused by always sending dimensions in embedding requests (#7525)
fix(知识库): 将dimensions字段改为可选并修复相关逻辑
2025-06-25 21:15:05 +08:00
one
5138f5b314 fix: clear search cache on resending (#7510) 2025-06-25 21:10:15 +08:00
自由的世界人
839c44eb7a refactor: data migration modal logic in DataSettings (#7503)
* refactor: data migration modal logic in DataSettings

Moved showProgressModal and startMigration functions inside the useEffect hook and added t as a dependency. This improves encapsulation and ensures translation updates are handled correctly.

* remove trailing whitespace in DataSettings.tsx

Cleaned up a line by removing unnecessary trailing whitespace in the DataSettings component.
2025-06-25 21:07:40 +08:00
fullex
0001bc60a9 refactor: rename isWindows to isWin for consistency across main/renderer (#7530)
refactor: rename isWindows to isWin for consistency across components
2025-06-25 19:59:47 +08:00
LiuVaayne
04e6f2c1ad feat: implement Python MCP server using existing Pyodide infrastructure (#7506) 2025-06-25 18:21:10 +08:00
Chen Tao
a94847faeb fix: bailian reranker (#7518) 2025-06-25 15:48:04 +08:00
Teo
64b01cce47 feat: 一些UI上的优化和重构 (#7479)
- 调整AntdProvider中主题配置,包括颜色、尺寸
- 重构聊天气泡模式的样式
- 重构多选模式的样式
- 添加Selector组件取代ant Select组件
- 重构消息搜索弹窗界面
- 重构知识库搜索弹窗界面
- 优化其他弹框UI
2025-06-25 14:34:18 +08:00
kangfenmao
3df5aeb3c3 Revert "feat: Update API Key Management Interface (#3444)"
This reverts commit 31b3ce1049.
2025-06-25 13:10:46 +08:00
SuYao
9fe5fb9a91 fix: non streamoutput sometimes (#7512)
* feat(migrate): add default settings for assistants during migration

- Introduced a new migration step to assign default settings for assistants that lack configuration.
- Default settings include temperature, context count, and other parameters to ensure consistent behavior across the application.

* chore(store): increment version number to 115 for persisted reducer
2025-06-25 12:49:00 +08:00
chenxue
17951ad157 feat: add appcode (#7507)
Co-authored-by: zhaochenxue <zhaochenxue@bixin.cn>
2025-06-25 09:17:27 +08:00
beyondkmp
3640d846b9 feat: Implement occupied directories handling during data copy (#7485)
* feat: Implement occupied directories handling during data copy

- Added `occupiedDirs` constant to manage directories that should not be copied.
- Enhanced the `copyOccupiedDirsInMainProcess` function to copy occupied directories to a new app data path in the main process.
- Updated IPC and preload APIs to support passing occupied directories during the copy operation.
- Modified the DataSettings component to utilize the new copy functionality with occupied directories.

* fix: Improve occupied directories handling during data copy

- Updated the filter logic in the `registerIpc` function to resolve directory paths correctly.
- Modified the `DataSettings` component to pass the correct occupied directories format during the copy operation.
2025-06-25 00:39:28 +08:00
one
becb6543e0 fix(model): doubao thinking param (#7499) 2025-06-24 23:42:55 +08:00
自由的世界人
1055903456 fix: add tag collapse state management for assistants (#7436)
Add tag collapse state management for assistants

Introduces a collapsedTags state to manage the collapsed/expanded state of tag groups in the assistants list. Updates useTags and AssistantsTab to use this state, and adds actions to toggle and initialize tag collapse in the Redux store.
2025-06-24 21:12:49 +08:00
自由的世界人
e2b8133729 refactor: file actions into FileAction service (#7413)
* refactor: file actions into FileAction service

Moved file sorting, deletion, and renaming logic from FilesPage to a new FileAction service for better modularity and reuse. Updated FileList and FilesPage to use the new service functions, and improved the delete button UI in FileList.
2025-06-24 18:51:58 +08:00
one
f2c9bf433e refactor(CodePreview): auto resize gutters (#7481)
* refactor(CodePreview): auto resize gutters

* refactor: remove unnecessary usememo
2025-06-24 04:01:05 +08:00
Xunjin ZHENG
31b3ce1049 feat: Update API Key Management Interface (#3444)
* feat: enhance API key management in ApiCheckPopup: allow users to add new API key

- Enhanced ApiCheckPopup component to allow users to add new API key, including validation for duplicate entries and improved user feedback.

* feat: update localization strings and refactor API key management components

- Added "Invalid API key" message to localization files for English, Japanese, Russian, Simplified Chinese, and Traditional Chinese.
- Refactored API key management by replacing the ApiCheckPopup with a new ApiKeyList component, enhancing user experience and modularity in handling API keys across provider settings.

* refactor: update OAuthButton and ApiKeyList components for improved UI and localization

- Commented out the translation key in OAuthButton for future use.
- Removed unnecessary localization strings related to API key tips across multiple languages.
- Enhanced ApiKeyList component with styled components for better layout and user interaction.
- Updated ProviderSetting and WebSearchProviderSetting to streamline API key management UI.

* refactor: streamline ApiKeyList component and update localization strings

- Removed the "Check Multiple API Keys" translation key from English, Japanese, Russian, Simplified Chinese, and Traditional Chinese localization files.
- Updated ApiKeyList component to eliminate the model prop, enhancing its simplicity and usability.
- Improved error handling in API key validation by integrating model selection directly within the check process.

* feat: add latency tooltip to API key validation in ApiKeyList component and update localization strings

- Introduced a latency tooltip in the ApiKeyList component to display the time taken for API key validation.
- Updated localization files for English, Japanese, Russian, Simplified Chinese, and Traditional Chinese to include the new latency tooltip string.

* refactor: remove unused imports in WebSearchProviderSetting component

* refactor: improve error handling and latency tracking in ApiKeyList component

- Enhanced error handling during model selection to prevent failures when the user cancels the popup.
- Introduced latency tracking for API key validation, ensuring accurate measurement of response times.
- Streamlined the code for better readability and maintainability.

* refactor: improve styling in ApiKeyList component for better UI consistency

- Updated padding styles for error messages and list items in the ApiKeyList component to enhance visual clarity and user experience.
- Adjusted Card component properties to ensure consistent styling across the interface.

* refactor: extract key formatting logic into a separate function in ApiKeyList component

- Created a new function `formatAndConvertKeysToArray` to handle the formatting and conversion of API keys into an array of unique key objects.
- Updated the state initialization and effect hook in the ApiKeyList component to utilize the new function, improving code readability and maintainability.

* refactor: conditionally render API key section for non-copilot providers

- Updated the ProviderSetting component to conditionally display the API key section only for providers other than 'copilot', improving the user interface and experience.
- Maintained existing functionality for API key management while enhancing code readability.

* refactor: enhance ApiKeyList component for copilot provider handling

- Introduced a new condition to manage the rendering and functionality of buttons in the ApiKeyList component based on the provider type, specifically for 'copilot'.
- Updated the ProviderSetting component to ensure the API key section is consistently displayed for all providers, improving overall user experience and code clarity.

* fix model type error

* feat(ApiKeyList): exclude rerank models from being checked for API key validation after #3969 is merged

* refactor(ApiKeyList): conditionally render check and remove buttons based on key statuses

* refactor(ApiKeyList): using Promise.all for improved performance after #4066 is merged

* refactor(ProviderSettings): update API key display and tooltip integration for improved layout and accessibility

* fix(ApiKeyList): prevent notifications from showing when checking multiple API keys

* feat(ApiKeyList): enhance API key handling with improved key formatting and auto-focus logic for add button

* refactor: clean up WebSearchProviderSetting component

* refactor(ApiKeyList): replace icon buttons with styled components for save and cancel actions

* refactor: API key list UI and remove unused components

Simplified the API key list UI by removing custom styled components for status and actions, replacing them with Ant Design icons and buttons. Improved the key checking logic and removed the tooltip for key check results. Also removed an unused help text in ProviderSetting.

* refactor: add edit functionality to API key list

Introduces the ability to edit existing API keys in the ApiKeyList component. Removes custom save/cancel icon buttons in favor of standard input blur/enter and icon actions. Also adjusts styling for help text in ProviderSetting.

* refactor(ApiKeyList): enhance key status display with tooltips and color coding

* feat(i18n): add "checking" status message in multiple languages

* feat(ApiKeyList): enhance API key management with confirmation for deletion and improved state handling

- Added confirmation for deleting API keys, allowing users to confirm before removal.
- Introduced a cancel state for adding new keys to improve user experience.
- Enhanced key status updates to prevent unnecessary re-renders.
- Improved UI interactions with better handling of edit and cancel actions.
- Added escape key functionality for canceling edits and new key entries.

* fix(ApiKeyList): adjust layout of API key list for improved spacing and alignment

- Updated the Flex component to justify content between elements, enhancing the visual layout of the API key list.
- Minor style adjustment to maintain consistency in the user interface.

* fix(ApiKeyList): refine padding for API key list items to enhance visual consistency

- Adjusted padding for API key list text and items to improve overall layout and alignment.
- Ensured consistent spacing across different states of the API key list.

---------

Co-authored-by: Pleasurecruise <3196812536@qq.com>
Co-authored-by: suyao <sy20010504@gmail.com>
2025-06-24 01:54:12 +08:00
Ying-xi
f69ea8648c fix: display updated timestamp when available in knowledge base (#7453)
* fix: display updated timestamp when available in knowledge base

- Add updated_at field when creating knowledge items
- Show updated_at timestamp if it's newer than created_at
- Fallback to created_at if updated_at is not available or older

Fixes #4587

Signed-off-by: Ying-xi <62348590+Ying-xi@users.noreply.github.com>

* refactor(knowledge): extract display time logic into a reusable function

Signed-off-by: Ying-xi <62348590+Ying-xi@users.noreply.github.com>

---------

Signed-off-by: Ying-xi <62348590+Ying-xi@users.noreply.github.com>
2025-06-24 00:06:52 +08:00
beyondkmp
bbe380cc9e feat(ContextMenu): add spell check and dictionary suggestions to context menu (#7067)
* feat(ContextMenu): add spell check and dictionary suggestions to context menu

- Implemented spell check functionality in the context menu with options to learn spelling and view dictionary suggestions.
- Updated WindowService to enable spellcheck in the webview.
- Enabled spell check in Inputbar and MessageEditor components.

* feat(SpellCheck): implement spell check language settings and initialization

- Added support for configuring spell check languages based on user-selected language.
- Introduced IPC channel for setting spell check languages.
- Updated settings to manage spell check enablement and languages.
- Enhanced UI to allow users to toggle spell check functionality and select languages.
- Default spell check languages are set based on the current UI language if none are specified.

* refactor(SpellCheck): enhance spell check language mapping and UI settings

- Updated spell check language mapping to default to English for unsupported languages.
- Improved UI logic to only update spell check languages when enabled and no manual selections are made.
- Added a new selection component for users to choose from commonly supported spell check languages.

* feat(SpellCheck): integrate spell check functionality into Inputbar and MessageEditor

- Added enableSpellCheck setting to control spell check functionality in both Inputbar and MessageEditor components.
- Updated spellCheck prop to utilize the new setting, enhancing user experience by allowing customization of spell check behavior.

* refactor(SpellCheck): move spell check initialization to WindowService

- Removed spell check language initialization from index.ts and integrated it into WindowService.
- Added setupSpellCheck method to configure spell check languages based on user settings.
- Enhanced error handling for spell check language setup.

* feat(SpellCheck): add enable spell check functionality and IPC channel

- Introduced a new IPC channel for enabling/disabling spell check functionality.
- Updated the preload API to include a method for setting spell check enablement.
- Modified the main IPC handler to manage spell check settings based on user input.
- Simplified spell check language handling in the settings component by directly invoking the new API method.

* refactor(SpellCheck): remove spellcheck option from WindowService configuration

- Removed the spellcheck property from the WindowService configuration object.
- This change streamlines the configuration setup as spell check functionality is now managed through IPC channels.

* feat(i18n): add spell check translations for Japanese, Russian, and Traditional Chinese

- Added new translations for spell check functionality in ja-jp, ru-ru, and zh-tw locale files.
- Included descriptions and language selection options for spell check settings to enhance user experience.

* feat(migrate): add spell check configuration migration

- Implemented migration for spell check settings, disabling spell check and clearing selected languages in the new configuration.
- Enhanced error handling to ensure state consistency during migration process.

* fix(migrate): ensure spell check settings are updated safely

- Added a check to ensure state.settings exists before modifying spell check settings during migration.
- Removed redundant error handling that returned the state unmodified in case of an error.

* fix(WindowService): set default values for spell check configuration and update related UI texts

* refactor(Inputbar, MessageEditor): remove contextMenu attribute and add context menu handling in MessageEditor

---------

Co-authored-by: beyondkmp <beyondkmkp@gmail.com>
2025-06-23 21:19:21 +08:00
beyondkmp
be15206234 fix: Data config improvement (#7471)
* fix: update localization files for data migration warnings and path validation messages

* fix: update app data path validation and localization messages for installation path consistency

* fix: enhance app data flushing process by adding connection closure and delay in DataSettings component
2025-06-23 17:18:46 +08:00
Wang Jiyuan
aee8fe6196 feat(mcpServers): Add a thought field to sequential thinking mcp server (#7465)
feat(mcpServers): 在sequentialthinking中添加thought字段
2025-06-23 15:27:20 +08:00
one
4f2c8bd905 fix(Markdown): improve latex brackets handling (#7358) 2025-06-23 15:19:21 +08:00
Murphy
a2e2eb3b73 fix: re-add newline separator between reasoning_summary parts after openai middleware refactor (#7390)
re-add newline separator between reasoning_summary parts after openai client refactor

Signed-off-by: MurphyLo <murphylo@mail.bnu.edu.cn>
2025-06-23 12:51:08 +08:00
Wang Jiyuan
32d6c2e1d8 feat(TopicsTab): Allow deletion of inactive topics (#7415)
* fix(主题列表): 修复主题列表项悬停样式和菜单显示条件

调整主题列表项悬停时的背景色过渡效果,并修正菜单显示逻辑,仅在非挂起状态显示

* fix(TopicsTab): 移除话题待处理状态检查

* fix(TopicsTab): 修复删除话题时未检查当前活跃话题的问题
2025-06-23 09:59:50 +08:00
purefkh
b4c8e42d87 fix(rename): disable thinking for topic rename (#7461) 2025-06-23 09:48:29 +08:00
Tristan Zhang
a8e23966fa feat(FileStorage): add support for .doc files using word-extractor (#7374)
* feat(FileStorage): add support for .doc files and integrate word-extractor

* chore(package): add word-extractor to devdependencies
2025-06-23 08:55:03 +08:00
Wang Jiyuan
2350919f36 fix: use shouldThrow param in checkApi instead of adding error property to CompletionsResult (#7457)
* Revert "refactor(middleware): Add error property to CompletionResult and handle errors when checking API (#7407)"

This reverts commit 50d6f1f831.

* fix: use shouldThrow param in checkApi
2025-06-22 21:33:17 +08:00
kangfenmao
355d2aebb4 chore(version): 1.4.5 2025-06-22 17:31:43 +08:00
Wang Jiyuan
50d6f1f831 refactor(middleware): Add error property to CompletionResult and handle errors when checking API (#7407)
* refactor(aiCore): 添加错误处理

* remove console.log
2025-06-22 17:03:43 +08:00
自由的世界人
d9b8e68c30 fix: update source language handling and persist user selection in TranslatePage component (#7243) 2025-06-22 12:28:31 +08:00
beyondkmp
c660aaba3d fix: 修复数据目录迁移的bug (#7386)
* fix: move initAppDataDir function inline and remove export from utils/file.ts

* fix some bugs

* fix shouldcopy error

* fix: handle appDataPath initialization and update logic in file.ts; update defaultChecked in DataSettings component

* fix: improve appDataPath handling and migration logic in file.ts

* fix: add error message for selecting the same app data path in DataSettings component and update localization files

* fix: ensure migration confirmation modal is shown correctly in DataSettings component

* feat: add new IPC channel for retrieving data path from arguments and update related components for migration handling

* fix: update app data path validation to check for prefix match in DataSettings component

* refactor: simplify data migration logic in DataSettings component by removing unnecessary flag

* fix: update initAppDataDir invocation to check for app packaging status in bootstrap.ts
2025-06-22 10:32:23 +08:00
Wang Jiyuan
60b37876b1 fix: remove duplicated deepseek-v3 in volcengine (#7406)
fix: 移除重复的DeepSeek-V3模型配置
2025-06-21 21:20:40 +08:00
beyondkmp
37aaaee086 fix: add node-stream-zip for zip file extraction in install-bun script (#7403)
* chore(package): add node-stream-zip for zip file extraction in install-bun script

* refactor(install-uv): replace AdmZip with node-stream-zip for improved zip file extraction

* fix(install-uv): ensure correct extraction of uv binary for Unix/Linux/macOS

* refactor(install-uv): remove redundant file handling and cleanup for Unix/Linux/macOS installation

* fix(install-uv): update tar extraction command to strip leading components for Unix/Linux/macOS

* fix(install-uv): clarify comment for zip file extraction on Windows

* fix(install-bun): correct extraction directory for bun binary

* fix(install-bun, install-uv): update default versions and improve zip extraction process

* fix(install-bun): remove redundant cleanup of source directory after bun installation
2025-06-21 19:47:15 +08:00
Wang Jiyuan
b91ac0de1d fix(models): Unexpected inability to disable image generation feature (#7401)
* fix(models): 修复禁用图片生成模型检查逻辑

* fix(models): use getBaseName()
2025-06-20 22:30:14 +08:00
Wang Jiyuan
8d247add98 fix(ApiService): correct enableWebSearch conditional logic error (#7396)
* fix(ApiService): 修复enableWebSearch条件判断逻辑错误

* fix(web搜索): 修正web搜索模型判断逻辑
2025-06-20 18:06:44 +08:00
Wang Jiyuan
a813df993c fix: Chat does not work properly when configuring multiple API keys (#7385)
* refactor(openai): 使用getApiKey方法替代直接访问apiKey属性

* refactor(openai): 使用getApiKey方法替代直接访问provider.apiKey

* refactor(api客户端): 直接使用apiKey属性替代getApiKey方法
2025-06-20 17:46:45 +08:00
SuYao
1915ba5bfb fix(GeminiAPIClient): update abortSignal option and ensure userLastMessage is pushed to messages (#7387) 2025-06-20 14:46:22 +08:00
George·Dong
3e142f67ad fix(i18n): fix model name export help text (#7372) 2025-06-19 23:32:32 +08:00
Tristan Zhang
b4b456ae06 fix(AssistantService): add default settings configuration to assistant initialization (#7371) 2025-06-19 22:56:46 +08:00
one
ed0bb7fd16 feat(Markdown): disable indented code blocks (#7288)
* feat(Markdown): disable indented code blocks

* chore: update remark/rehype packages
2025-06-19 19:39:33 +08:00
kangfenmao
c9f94a3b15 chore(version): 1.4.4 2025-06-19 19:09:28 +08:00
亢奋猫
ec36f78ffb fix: update WindowService transparency and improve Inputbar resizing … (#7362) 2025-06-19 18:37:53 +08:00
one
439ec286b5 refactor: hard-coded language map (#7360) 2025-06-19 17:13:29 +08:00
one
28b58d8e49 refactor(CodeBlock): support more file extensions for code downloading (#7192) 2025-06-19 15:09:01 +08:00
SuYao
26cb37c9be refactor: remove deprecated MCP server handling and knowledge base ID logic from Inputbar and related services (#7339)
- Removed unused MCP server handling from Inputbar and MessagesService.
- Updated ApiService to fetch active MCP servers directly from the store.
- Deprecated knowledgeBaseIds and enabledMCPs in Message types and related functions.
- Cleaned up related utility functions to enhance code clarity and maintainability.
2025-06-19 13:34:36 +08:00
one
115470fce6 chore(WebDav): remove useless webdav restore (#7347)
- remove webdav restore modal
- fix i18n keys
2025-06-19 12:33:59 +08:00
SuYao
23e9184323 fix: openai response tool use (#7332)
* fix: openai response tool use

- Added OpenAIResponseStreamListener interface for handling OpenAI response streams.
- Implemented attachRawStreamListener method in OpenAIResponseAPIClient to manage raw output.
- Updated RawStreamListenerMiddleware to integrate OpenAI response handling.
- Refactored BaseApiClient to remove unused attachRawStreamListener method.
- Improved buildSdkMessages to handle OpenAI response formats.

* fix: remove logging from StreamAdapterMiddleware

- Removed Logger.info call from StreamAdapterMiddleware to streamline output and reduce unnecessary logging.

* fix: update attachRawStreamListener to return a Promise

- Changed attachRawStreamListener method in OpenAIResponseAPIClient to be asynchronous, returning a Promise for better handling of raw output.
- Updated RawStreamListenerMiddleware to await the result of attachRawStreamListener, ensuring proper flow of data handling.

* refactor: enhance attachRawStreamListener to return a ReadableStream

- Updated the attachRawStreamListener method in OpenAIResponseAPIClient to return a ReadableStream, allowing for more efficient handling of streamed responses.
- Modified RawStreamListenerMiddleware to accommodate the new return type, ensuring proper integration of the transformed stream into the middleware flow.

* refactor: update getResponseChunkTransformer to accept CompletionsContext

- Modified the getResponseChunkTransformer method in BaseApiClient and its implementations to accept a CompletionsContext parameter, enhancing the flexibility of response handling.
- Adjusted related middleware and client classes to ensure compatibility with the new method signature, improving the overall integration of response transformations.

* refactor: update getResponseChunkTransformer to accept CompletionsContext

- Modified the getResponseChunkTransformer method in AihubmixAPIClient to accept a CompletionsContext parameter, enhancing the flexibility of response handling.
- Ensured compatibility with the updated method signature across related client classes.
2025-06-19 12:24:27 +08:00
SuYao
deac7de5aa fix(ApiService): improve error handling when fetching tools from MCP servers (#7340)
- Added error handling for tool fetching to log errors and return an empty array if a server fails to respond.
- Changed from Promise.all to Promise.allSettled to ensure all tool fetching attempts are accounted for, filtering out any rejected promises.
2025-06-19 12:02:03 +08:00
Teo
6996cdfbf9 fix: the issue where anchor clicks in multi-model responses fail to redirect (#7342)
* fix: 修复多模型回答的锚点点击无法跳转问题

* chore(Messages): remove debug logging from MessageAnchorLine component
2025-06-19 11:23:42 +08:00
Wang Jiyuan
8c9822cc71 Fix: Handle embedding dimension retrieval failure when creating knowledge base (#7324)
* fix(知识库): 处理获取嵌入维度为0时的错误情况

* fix(aiCore): 修复获取嵌入维度时错误处理不当的问题

修改各AI客户端获取嵌入维度的方法,在出错时抛出异常而不是返回0
同时在调用处移除对返回值为0的特殊处理,直接捕获异常

* refactor(aiCore): 移除获取嵌入维度的冗余try-catch块

简化代码结构,移除不必要的错误处理,因为错误会由上层调用者处理
2025-06-19 02:03:31 +08:00
SuYao
d05ff5ce48 fix(AnthropicAPIClient): non stream tooluse (#7338)
- Added debug logging in buildSdkMessages for better traceability.
- Improved handling of tool calls in the transform method to correctly index multiple tool uses.
- Enqueued additional response types to enhance the output structure for better integration with the streaming API.
- Refactored event listener attachment for clarity and maintainability.
2025-06-19 01:11:15 +08:00
purefkh
ccff6dc2b8 feat: update gemini-2.5 model capabilities and thinking budget (#7323)
Co-authored-by: suyao <sy20010504@gmail.com>
2025-06-19 00:32:49 +08:00
fullex
5ce4f91829 refactor(QuickAssistant): fix loop rendering & support context/pause/thinking block (#7336)
* fix: series bugs of quick assistant

* fix: update quick assistant ID handling and improve error management in HomeWindow

* refactor(HomeWindow, Messages): streamline clipboard handling and improve component structure

- Removed unused imports and hotkey functionality from Messages component.
- Refactored clipboard management in HomeWindow to use refs for better performance.
- Enhanced user input handling and state management in HomeWindow.
- Updated InputBar to accept assistant prop instead of model for better clarity.
- Improved Footer component to handle copy functionality and pin state more effectively.

* Enhance Footer component: add rotation animation to pin icon and adjust margin

- Updated the Pin icon in the Footer component to include a rotation animation based on the pin state.
- Adjusted the margin of the PinButtonArea for improved layout consistency.

* refactor(HomeWindow): improve clipboard handling and input placeholder logic

- Updated clipboard reading logic to check for document focus in addition to startup settings.
- Consolidated key event handling to streamline input processing.
- Enhanced placeholder logic in InputBar to reflect the current assistant's name or model more accurately.
2025-06-19 00:14:32 +08:00
one
757eed1617 fix(OpenAI): respect successful stream without finish reason (#7326)
* fix(OpenAI): respect successful stream without finish reason

* fix: lint errors
2025-06-18 23:19:25 +08:00
SuYao
333cc7b5a8 fix: lint (#7333) 2025-06-18 23:14:54 +08:00
SuYao
91a936c151 fix: initialize messageContents and improve message handling in GeminiAPIClient; add new Gemini model to configuration (#7307)
* fix: initialize messageContents and improve message handling in GeminiAPIClient; add new Gemini model to configuration

* refactor: streamline message handling in GeminiAPIClient; enhance message extraction from SDK payload
2025-06-18 17:40:46 +08:00
beyondkmp
d409ac1b73 feat: Add app data path selection and relaunch functionality (#6096)
* feat: Add app data path selection and relaunch functionality

* Introduced new IPC channels for selecting and setting the app data path.
* Implemented logic to initialize the app data path on startup.
* Added confirmation modal for changing the app data directory in the settings.
* Updated translations for new app data path features in multiple languages.

* feat: Implement user data copying and app data path management

* Added IPC channels for copying user data to a new location and setting the app data path.
* Enhanced the user interface to support data copying with progress notifications.
* Updated translations to reflect new features related to app data management.
* Refactored file utility functions to streamline data path handling.

* refactor: update IPC channel names and streamline app data path handling

- Renamed IPC channels for selecting app data path and copying user data for clarity.
- Simplified the logic for selecting and setting app data paths, removing unnecessary success/error handling.
- Updated related functions and components to reflect the new IPC channel names and improved data handling.
- Removed unused copyUserDataToNewLocation function to clean up the codebase.

* fix: update app data directory selection text in multiple locales

- Changed the text for selecting the app data directory from "Select Directory" to "Modify Directory" in English, Japanese, Russian, Simplified Chinese, and Traditional Chinese locales to better reflect the action being performed.

* refactor: remove redundant success messages in DataSettings component

- Eliminated unnecessary success messages related to app data copying and app relaunching to streamline user feedback and improve code clarity.

* refactor: streamline file utility functions and update app data initialization

- Moved `getDataPath` function to the `utils/index.ts` for better organization and accessibility.
- Renamed `initUserDataDir` to `initAppDataDir` for clarity in its purpose.
- Removed commented-out code in `ConfigManager` to enhance code cleanliness.

* refactor: update import paths and localization strings for app data

- Refactored import statements for `getDataPath` to streamline utility access.
- Updated localization strings for app data in English, Japanese, Russian, Simplified Chinese, and Traditional Chinese to enhance clarity and consistency.

* update i18n

* add fc

* fix: handle errors in app data path retrieval

- Added error handling to the `getAppDataPathFromConfig` function to return null if the configuration file cannot be read or parsed, improving robustness.

* refactor: simplify app data path handling in IPC

- Removed error handling for setting the app data path in the IPC channel, streamlining the process by directly updating the configuration and user data path without try-catch blocks.

* fix: update userData path handling for portable applications

- Modified the initAppDataDir function to set the userData path based on the PORTABLE_EXECUTABLE_DIR environment variable, ensuring compatibility with portable application setups.

* feat: enhance app data path migration with progress indication

- Implemented a loading modal with progress tracking during the app data path migration process.
- Added visual feedback using a progress bar to inform users of the copying status.
- Improved error handling and user notifications for successful and failed migrations.
- Refactored the modal confirmation logic to streamline user interactions during the path selection and migration process.

* feat: add migration paths and update UI for data migration process

- Introduced new translation keys for migration paths in Japanese, Russian, Simplified Chinese, and Traditional Chinese.
- Enhanced the DataSettings component with a structured layout for displaying original and new paths during data migration.
- Updated modal titles and content to improve user experience during the migration process.

* feat: enhance data migration process with improved UI and progress tracking

- Refactored the DataSettings component to streamline the data migration workflow.
- Added a new function to display progress during the migration process, enhancing user feedback.
- Updated modal logic to improve clarity and user experience when selecting new app data paths.
- Implemented error handling and notifications for successful and failed migrations.

* feat: add stop quit app functionality during data migration

- Introduced a new IPC channel to manage the application's quit behavior during data transfer.
- Updated the DataSettings component to prevent the app from quitting while migration is in progress, enhancing user experience.
- Improved modal configurations for better responsiveness and visual appeal.

* feat: enhance app data path handling and localization updates

- Updated IPC handler to use 'filePath' for clarity in app data path management.
- Improved validation to ensure the new app data path is not the root path, enhancing user feedback during path selection.
- Added new translation keys for error messages related to app data path selection in English, Japanese, Russian, Simplified Chinese, and Traditional Chinese, improving localization support.

* feat: add write permission check and enhance quit prevention during data migration

- Introduced a new IPC channel to check write permissions for the app data path.
- Updated the DataSettings component to validate write permissions before proceeding with data migration.
- Enhanced the quit prevention logic to include a reason for blocking the app from quitting during data transfer.
- Added new localization keys for error messages related to write permissions in multiple languages, improving user feedback.

* feat: enhance confirmation modal in DataSettings component

- Updated the confirmation modal to include danger styling for the OK button, improving visual feedback.
- Added localized text for the OK and Cancel buttons, enhancing user experience through better accessibility.

* feat: add localization keys and improve quit prevention during data migration

- Added new localization keys for data migration, including titles and original path labels, enhancing user experience.
- Updated the DataSettings component to ensure the app does not quit during data migration, improving reliability and user feedback.

* feat(DataSettings): add data copying option and update related messages

- Introduced a switch to allow users to choose whether to copy data from the original directory when changing the app data path.
- Updated user notifications and progress messages to reflect the new functionality, including warnings about data copying.
- Enhanced localization files for multiple languages to include new strings related to data copying options and notifications.

* fix(DataSettings): set default for data copying option to true

- Updated the DataSettings component to set the default state of the data copying option to true.
- Added a new CopyDataContent component to enhance the user interface by displaying the data copying option alongside the existing path settings.
- Improved layout by ensuring proper spacing and alignment for better user experience.

---------

Co-authored-by: beyondkmp <beyondkmkp@gmail.com>
2025-06-18 17:39:26 +08:00
GuanMu
9e8f14c9d3 fix: update dify icon (#7301)
* fix: update dify icon

* fix: 更新dify图标尺寸和视图框
2025-06-18 15:20:38 +08:00
fullex
e05eba2450 feat: toggle Selection Assistant on tray menu (#7286)
feat: toggle SelectionService on tray
2025-06-18 00:02:28 +08:00
SuYao
df2bcec768 fix: update buildSdkMessages to handle undefined output in API clients (#7293)
* fix: update buildSdkMessages to handle undefined output in API clients

* fix: update vision model check to include model name in regex validation
2025-06-17 23:11:12 +08:00
shiquda
0bf98cce9e feat: Add pricing configuration and display for models (#3125)
* feat: Add pricing configuration and display for models

- Introduce model pricing fields in ModelEditContent
- Add price calculation and display in MessageTokens
- Update localization files with price-related translations
- Extend Model type with optional pricing information

* fix: Correct currency symbol placement in message token pricing display

* feat: Add custom currency support in model pricing configuration

- Introduce custom currency option in ModelEditContent
- Update localization files with custom currency translations
- Enhance currency symbol selection with custom input
- Improve input styling for pricing configuration

* fix(OpenAIProvider): ensure messages.content of the request is string

* Update ModelEditContent.tsx

* fix(model-price): remove duplicate button

* fix: build error

---------

Co-authored-by: 自由的世界人 <3196812536@qq.com>
2025-06-17 22:53:47 +08:00
MyPrototypeWhat
45ec069dce fix: refactor provider middleware (#7164) 2025-06-17 21:20:52 +08:00
Chen Tao
006f134647 fix: use rewrite to search knowledge (#7289) 2025-06-17 21:02:09 +08:00
Ivan Hanloth
804f9235cd fix: classify agents as Chinese and English (#7287)
* feat: Create i18n for agents in Chinese

* fix: enhance agent loading by supporting language-specific agent files

---------

Co-authored-by: Pleasurecruise <3196812536@qq.com>
2025-06-17 20:05:44 +08:00
自由的世界人
5d9fc292b7 fix: add Markdown preview option in translation settings (#7250) 2025-06-17 14:42:27 +08:00
fullex
37dac7f6ea fix: unified the behavior of SendMessage shortcut (#7276) 2025-06-17 14:38:05 +08:00
690 changed files with 55433 additions and 7589 deletions

View File

@@ -1,86 +1,17 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: "monthly"
open-pull-requests-limit: 7
target-branch: "main"
commit-message:
prefix: "chore"
include: "scope"
groups:
# 核心框架
core-framework:
patterns:
- "react"
- "react-dom"
- "electron"
- "typescript"
- "@types/react*"
- "@types/node"
update-types:
- "minor"
- "patch"
# Electron 生态和构建工具
electron-build:
patterns:
- "electron-*"
- "@electron*"
- "vite"
- "@vitejs/*"
- "dotenv-cli"
- "rollup-plugin-*"
- "@swc/*"
update-types:
- "minor"
- "patch"
# 测试工具
testing-tools:
patterns:
- "vitest"
- "@vitest/*"
- "playwright"
- "@playwright/*"
- "eslint*"
- "@eslint*"
- "prettier"
- "husky"
- "lint-staged"
update-types:
- "minor"
- "patch"
# CherryStudio 自定义包
cherrystudio-packages:
patterns:
- "@cherrystudio/*"
update-types:
- "minor"
- "patch"
# 兜底其他 dependencies
other-dependencies:
dependency-type: "production"
# 兜底其他 devDependencies
other-dev-dependencies:
dependency-type: "development"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
interval: 'monthly'
open-pull-requests-limit: 3
commit-message:
prefix: "ci"
include: "scope"
prefix: 'ci'
include: 'scope'
groups:
github-actions:
patterns:
- "*"
- '*'
update-types:
- "minor"
- "patch"
- 'minor'
- 'patch'

View File

@@ -0,0 +1,27 @@
name: Dispatch Docs Update on Release
on:
release:
types: [released]
permissions:
contents: write
jobs:
dispatch-docs-update:
runs-on: ubuntu-latest
steps:
- name: Get Release Tag from Event
id: get-event-tag
shell: bash
run: |
# 从当前 Release 事件中获取 tag_name
echo "tag=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT
- name: Dispatch update-download-version workflow to cherry-studio-docs
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.REPO_DISPATCH_TOKEN }}
repository: CherryHQ/cherry-studio-docs
event-type: update-download-version
client-payload: '{"version": "${{ steps.get-event-tag.outputs.tag }}"}'

View File

@@ -79,6 +79,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RENDERER_VITE_AIHUBMIX_SECRET: ${{ vars.RENDERER_VITE_AIHUBMIX_SECRET }}
NODE_OPTIONS: --max-old-space-size=8192
MAIN_VITE_MINERU_API_KEY: ${{ vars.MAIN_VITE_MINERU_API_KEY }}
- name: Build Mac
if: matrix.os == 'macos-latest'
@@ -95,6 +96,7 @@ jobs:
RENDERER_VITE_AIHUBMIX_SECRET: ${{ vars.RENDERER_VITE_AIHUBMIX_SECRET }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: --max-old-space-size=8192
MAIN_VITE_MINERU_API_KEY: ${{ vars.MAIN_VITE_MINERU_API_KEY }}
- name: Build Windows
if: matrix.os == 'windows-latest'
@@ -105,6 +107,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RENDERER_VITE_AIHUBMIX_SECRET: ${{ vars.RENDERER_VITE_AIHUBMIX_SECRET }}
NODE_OPTIONS: --max-old-space-size=8192
MAIN_VITE_MINERU_API_KEY: ${{ vars.MAIN_VITE_MINERU_API_KEY }}
- name: Release
uses: ncipollo/release-action@v1
@@ -114,39 +117,4 @@ jobs:
makeLatest: false
tag: ${{ steps.get-tag.outputs.tag }}
artifacts: 'dist/*.exe,dist/*.zip,dist/*.dmg,dist/*.AppImage,dist/*.snap,dist/*.deb,dist/*.rpm,dist/*.tar.gz,dist/latest*.yml,dist/rc*.yml,dist/*.blockmap'
token: ${{ secrets.GITHUB_TOKEN }}
dispatch-docs-update:
needs: release
if: success() && github.repository == 'CherryHQ/cherry-studio' # 确保所有构建成功且在主仓库中运行
runs-on: ubuntu-latest
steps:
- name: Get release tag
id: get-tag
shell: bash
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "tag=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT
else
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
fi
- name: Check if tag is pre-release
id: check-tag
shell: bash
run: |
TAG="${{ steps.get-tag.outputs.tag }}"
if [[ "$TAG" == *"rc"* || "$TAG" == *"pre-release"* ]]; then
echo "is_pre_release=true" >> $GITHUB_OUTPUT
else
echo "is_pre_release=false" >> $GITHUB_OUTPUT
fi
- name: Dispatch update-download-version workflow to cherry-studio-docs
if: steps.check-tag.outputs.is_pre_release == 'false'
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.REPO_DISPATCH_TOKEN }}
repository: CherryHQ/cherry-studio-docs
event-type: update-download-version
client-payload: '{"version": "${{ steps.get-tag.outputs.tag }}"}'
token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,7 +1,8 @@
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never"
},
"search.exclude": {
"**/dist/**": true,

View File

@@ -0,0 +1,69 @@
diff --git a/es/dropdown/dropdown.js b/es/dropdown/dropdown.js
index 986877a762b9ad0aca596a8552732cd12d2eaabb..1f18aa2ea745e68950e4cee16d4d655f5c835fd5 100644
--- a/es/dropdown/dropdown.js
+++ b/es/dropdown/dropdown.js
@@ -2,7 +2,7 @@
import * as React from 'react';
import LeftOutlined from "@ant-design/icons/es/icons/LeftOutlined";
-import RightOutlined from "@ant-design/icons/es/icons/RightOutlined";
+import { ChevronRight } from 'lucide-react';
import classNames from 'classnames';
import RcDropdown from 'rc-dropdown';
import useEvent from "rc-util/es/hooks/useEvent";
@@ -158,8 +158,10 @@ const Dropdown = props => {
className: `${prefixCls}-menu-submenu-arrow`
}, direction === 'rtl' ? (/*#__PURE__*/React.createElement(LeftOutlined, {
className: `${prefixCls}-menu-submenu-arrow-icon`
- })) : (/*#__PURE__*/React.createElement(RightOutlined, {
- className: `${prefixCls}-menu-submenu-arrow-icon`
+ })) : (/*#__PURE__*/React.createElement(ChevronRight, {
+ size: 16,
+ strokeWidth: 1.8,
+ className: `${prefixCls}-menu-submenu-arrow-icon lucide-custom`
}))),
mode: "vertical",
selectable: false,
diff --git a/es/dropdown/style/index.js b/es/dropdown/style/index.js
index 768c01783002c6901c85a73061ff6b3e776a60ce..39b1b95a56cdc9fb586a193c3adad5141f5cf213 100644
--- a/es/dropdown/style/index.js
+++ b/es/dropdown/style/index.js
@@ -240,7 +240,8 @@ const genBaseStyle = token => {
marginInlineEnd: '0 !important',
color: token.colorTextDescription,
fontSize: fontSizeIcon,
- fontStyle: 'normal'
+ fontStyle: 'normal',
+ marginTop: 3,
}
}
}),
diff --git a/es/select/useIcons.js b/es/select/useIcons.js
index 959115be936ef8901548af2658c5dcfdc5852723..c812edd52123eb0faf4638b1154fcfa1b05b513b 100644
--- a/es/select/useIcons.js
+++ b/es/select/useIcons.js
@@ -4,10 +4,10 @@ import * as React from 'react';
import CheckOutlined from "@ant-design/icons/es/icons/CheckOutlined";
import CloseCircleFilled from "@ant-design/icons/es/icons/CloseCircleFilled";
import CloseOutlined from "@ant-design/icons/es/icons/CloseOutlined";
-import DownOutlined from "@ant-design/icons/es/icons/DownOutlined";
import LoadingOutlined from "@ant-design/icons/es/icons/LoadingOutlined";
import SearchOutlined from "@ant-design/icons/es/icons/SearchOutlined";
import { devUseWarning } from '../_util/warning';
+import { ChevronDown } from 'lucide-react';
export default function useIcons(_ref) {
let {
suffixIcon,
@@ -56,8 +56,10 @@ export default function useIcons(_ref) {
className: iconCls
}));
}
- return getSuffixIconNode(/*#__PURE__*/React.createElement(DownOutlined, {
- className: iconCls
+ return getSuffixIconNode(/*#__PURE__*/React.createElement(ChevronDown, {
+ size: 16,
+ strokeWidth: 1.8,
+ className: `${iconCls} lucide-custom`
}));
};
}

View File

@@ -1,4 +1,4 @@
[中文](./docs/CONTRIBUTING.zh.md) | [English](./CONTRIBUTING.md)
[中文](docs/CONTRIBUTING.zh.md) | [English](CONTRIBUTING.md)
# Cherry Studio Contributor Guide
@@ -58,6 +58,10 @@ git commit --signoff -m "Your commit message"
Maintainers are here to help you implement your use case within a reasonable timeframe. They will do their best to review your code and provide constructive feedback promptly. However, if you get stuck during the review process or feel your Pull Request is not receiving the attention it deserves, please contact us via comments in the Issue or through the [Community](README.md#-community).
### Participating in the Test Plan
The Test Plan aims to provide users with a more stable application experience and faster iteration speed. For details, please refer to the [Test Plan](docs/testplan-en.md).
### Other Suggestions
- **Contact Developers**: Before submitting a PR, you can contact the developers first to discuss or get help.

167
README.md
View File

@@ -1,34 +1,54 @@
<div align="right" >
<details>
<summary >🌐 Language</summary>
<div>
<div align="right">
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=en">English</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=zh-CN">简体中文</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=zh-TW">繁體中文</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ja">日本語</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ko">한국어</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=hi">हिन्दी</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=th">ไทย</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=fr">Français</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=de">Deutsch</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=es">Español</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=it">Itapano</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ru">Русский</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=pt">Português</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=nl">Nederlands</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=pl">Polski</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ar">العربية</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=fa">فارسی</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=tr">Türkçe</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=vi">Tiếng Việt</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=id">Bahasa Indonesia</a></p>
</div>
</div>
</details>
</div>
<h1 align="center">
<a href="https://github.com/CherryHQ/cherry-studio/releases">
<img src="https://github.com/CherryHQ/cherry-studio/blob/main/build/icon.png?raw=true" width="150" height="150" alt="banner" /><br>
</a>
</h1>
<p align="center">English | <a href="./docs/README.zh.md">中文</a> | <a href="./docs/README.ja.md">日本語</a> | <a href="https://cherry-ai.com">Official Site</a> | <a href="https://docs.cherry-ai.com/cherry-studio-wen-dang/en-us">Documents</a> | <a href="./docs/dev.md">Development</a> | <a href="https://github.com/CherryHQ/cherry-studio/issues">Feedback</a><br></p>
<!-- 题头徽章组合 -->
<p align="center">English | <a href="./docs/README.zh.md">中文</a> | <a href="https://cherry-ai.com">Official Site</a> | <a href="https://docs.cherry-ai.com/cherry-studio-wen-dang/en-us">Documents</a> | <a href="./docs/dev.md">Development</a> | <a href="https://github.com/CherryHQ/cherry-studio/issues">Feedback</a><br></p>
<div align="center">
[![][deepwiki-shield]][deepwiki-link]
[![][twitter-shield]][twitter-link]
[![][discord-shield]][discord-link]
[![][telegram-shield]][telegram-link]
</div>
<!-- 项目统计徽章 -->
<div align="center">
[![][github-stars-shield]][github-stars-link]
[![][github-forks-shield]][github-forks-link]
[![][github-release-shield]][github-release-link]
[![][github-nightly-shield]][github-nightly-link]
[![][github-contributors-shield]][github-contributors-link]
</div>
<div align="center">
[![][license-shield]][license-link]
[![][commercial-shield]][commercial-link]
[![][sponsor-shield]][sponsor-link]
@@ -36,9 +56,9 @@
</div>
<div align="center">
<a href="https://hellogithub.com/repository/1605492e1e2a4df3be07abfa4578dd37" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=1605492e1e2a4df3be07abfa4578dd37" alt="FeaturedHelloGitHub" style="width: 200px; height: 43px;" width="200" height="43" /></a>
<a href="https://trendshift.io/repositories/11772" target="_blank"><img src="https://trendshift.io/api/badge/repositories/11772" alt="kangfenmao%2Fcherry-studio | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
<a href="https://www.producthunt.com/posts/cherry-studio?embed=true&utm_source=badge-featured&utm_medium=badge&utm_souce=badge-cherry&#0045;studio" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=496640&theme=light" alt="Cherry&#0032;Studio - AI&#0032;Chatbots&#0044;&#0032;AI&#0032;Desktop&#0032;Client | Product Hunt" style="width: 200px; height: 43px;" width="200" height="43" /></a>
<a href="https://hellogithub.com/repository/1605492e1e2a4df3be07abfa4578dd37" target="_blank" style="text-decoration: none"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=1605492e1e2a4df3be07abfa4578dd37" alt="FeaturedHelloGitHub" width="220" height="55" /></a>
<a href="https://trendshift.io/repositories/11772" target="_blank" style="text-decoration: none"><img src="https://trendshift.io/api/badge/repositories/11772" alt="kangfenmao%2Fcherry-studio | Trendshift" width="220" height="55" /></a>
<a href="https://www.producthunt.com/posts/cherry-studio?embed=true&utm_source=badge-featured&utm_medium=badge&utm_souce=badge-cherry&#0045;studio" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=496640&theme=light" alt="Cherry&#0032;Studio - AI&#0032;Chatbots&#0044;&#0032;AI&#0032;Desktop&#0032;Client | Product Hunt" width="220" height="55" /></a>
</div>
# 🍒 Cherry Studio
@@ -163,10 +183,82 @@ Refer to the [Branching Strategy](docs/branching-strategy-en.md) for contributio
3. **Submit Changes**: Commit and push your changes.
4. **Open a Pull Request**: Describe your changes and reasons.
For more detailed guidelines, please refer to our [Contributing Guide](./CONTRIBUTING.md).
For more detailed guidelines, please refer to our [Contributing Guide](CONTRIBUTING.md).
Thank you for your support and contributions!
# 🔧 Developer Co-creation Program
We are launching the Cherry Studio Developer Co-creation Program to foster a healthy and positive-feedback loop within the open-source ecosystem. We believe that great software is built collaboratively, and every merged pull request breathes new life into the project.
We sincerely invite you to join our ranks of contributors and shape the future of Cherry Studio with us.
## Contributor Rewards Program
To give back to our core contributors and create a virtuous cycle, we have established the following long-term incentive plan.
**The inaugural tracking period for this program will be Q3 2025 (July, August, September). Rewards for this cycle will be distributed on October 1st.**
Within any tracking period (e.g., July 1st to September 30th for the first cycle), any developer who contributes more than **30 meaningful commits** to any of Cherry Studio's open-source projects on GitHub is eligible for the following benefits:
- **Cursor Subscription Sponsorship**: Receive a **$70 USD** credit or reimbursement for your [Cursor](https://cursor.sh/) subscription, making AI your most efficient coding partner.
- **Unlimited Model Access**: Get **unlimited** API calls for the **DeepSeek** and **Qwen** models.
- **Cutting-Edge Tech Access**: Enjoy occasional perks, including API access to models like **Claude**, **Gemini**, and **OpenAI**, keeping you at the forefront of technology.
## Growing Together & Future Plans
A vibrant community is the driving force behind any sustainable open-source project. As Cherry Studio grows, so will our rewards program. We are committed to continuously aligning our benefits with the best-in-class tools and resources in the industry. This ensures our core contributors receive meaningful support, creating a positive cycle where developers, the community, and the project grow together.
**Moving forward, the project will also embrace an increasingly open stance to give back to the entire open-source community.**
## How to Get Started?
We look forward to your first Pull Request!
You can start by exploring our repositories, picking up a `good first issue`, or proposing your own enhancements. Every commit is a testament to the spirit of open source.
Thank you for your interest and contributions.
Let's build together.
# 🏢 Enterprise Edition
Building on the Community Edition, we are proud to introduce **Cherry Studio Enterprise Edition**—a privately deployable AI productivity and management platform designed for modern teams and enterprises.
The Enterprise Edition addresses core challenges in team collaboration by centralizing the management of AI resources, knowledge, and data. It empowers organizations to enhance efficiency, foster innovation, and ensure compliance, all while maintaining 100% control over their data in a secure environment.
## Core Advantages
- **Unified Model Management**: Centrally integrate and manage various cloud-based LLMs (e.g., OpenAI, Anthropic, Google Gemini) and locally deployed private models. Employees can use them out-of-the-box without individual configuration.
- **Enterprise-Grade Knowledge Base**: Build, manage, and share team-wide knowledge bases. Ensure knowledge is retained and consistent, enabling team members to interact with AI based on unified and accurate information.
- **Fine-Grained Access Control**: Easily manage employee accounts and assign role-based permissions for different models, knowledge bases, and features through a unified admin backend.
- **Fully Private Deployment**: Deploy the entire backend service on your on-premises servers or private cloud, ensuring your data remains 100% private and under your control to meet the strictest security and compliance standards.
- **Reliable Backend Services**: Provides stable API services, enterprise-grade data backup and recovery mechanisms to ensure business continuity.
## ✨ Online Demo
> 🚧 **Public Beta Notice**
>
> The Enterprise Edition is currently in its early public beta stage, and we are actively iterating and optimizing its features. We are aware that it may not be perfectly stable yet. If you encounter any issues or have valuable suggestions during your trial, we would be very grateful if you could contact us via email to provide feedback.
**🔗 [Cherry Studio Enterprise](https://www.cherry-ai.com/enterprise)**
## Version Comparison
| Feature | Community Edition | Enterprise Edition |
| :---------------- | :----------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |
| **Open Source** | ✅ Yes | ⭕️ part. released to cust. |
| **Cost** | Free for Personal Use / Commercial License | Buyout / Subscription Fee |
| **Admin Backend** | — | ● Centralized **Model** Access<br>● **Employee** Management<br>● Shared **Knowledge Base**<br>● **Access** Control<br>● **Data** Backup |
| **Server** | — | ✅ Dedicated Private Deployment |
## Get the Enterprise Edition
We believe the Enterprise Edition will become your team's AI productivity engine. If you are interested in Cherry Studio Enterprise Edition and would like to learn more, request a quote, or schedule a demo, please contact us.
- **For Business Inquiries & Purchasing**:
**📧 [bd@cherry-ai.com](mailto:bd@cherry-ai.com)**
# 🔗 Related Projects
- [one-api](https://github.com/songquanpeng/one-api):LLM API management and distribution system, supporting mainstream models like OpenAI, Azure, and Anthropic. Features unified API interface, suitable for key management and secondary distribution.
@@ -180,34 +272,45 @@ Thank you for your support and contributions!
</a>
<br /><br />
# 📊 GitHub Stats
![Stats](https://repobeats.axiom.co/api/embed/a693f2e5f773eed620f70031e974552156c7f397.svg 'Repobeats analytics image')
# ⭐️ Star History
[![Star History Chart](https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Timeline)](https://star-history.com/#CherryHQ/cherry-studio&Timeline)
<a href="https://www.star-history.com/#CherryHQ/cherry-studio&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Date" />
</picture>
</a>
<!-- Links & Images -->
[deepwiki-shield]: https://img.shields.io/badge/Deepwiki-CherryHQ-0088CC?style=plastic
[deepwiki-shield]: https://img.shields.io/badge/Deepwiki-CherryHQ-0088CC?logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNy45MyAzMiI+PHBhdGggZD0iTTE5LjMzIDE0LjEyYy42Ny0uMzkgMS41LS4zOSAyLjE4IDBsMS43NCAxYy4wNi4wMy4xMS4wNi4xOC4wN2guMDRjLjA2LjAzLjEyLjAzLjE4LjAzaC4wMmMuMDYgMCAuMTEgMCAuMTctLjAyaC4wM2MuMDYtLjAyLjEyLS4wNS4xNy0uMDhoLjAybDMuNDgtMi4wMWMuMjUtLjE0LjQtLjQxLjQtLjdWOC40YS44MS44MSAwIDAgMC0uNC0uN2wtMy40OC0yLjAxYS44My44MyAwIDAgMC0uODEgMEwxOS43NyA3LjdoLS4wMWwtLjE1LjEyLS4wMi4wMnMtLjA3LjA5LS4xLjE0VjhhLjQuNCAwIDAgMC0uMDguMTd2LjA0Yy0uMDMuMDYtLjAzLjEyLS4wMy4xOXYyLjAxYzAgLjc4LS40MSAxLjQ5LTEuMDkgMS44OC0uNjcuMzktMS41LjM5LTIuMTggMGwtMS43NC0xYS42LjYgMCAwIDAtLjIxLS4wOGMtLjA2LS4wMS0uMTItLjAyLS4xOC0uMDJoLS4wM2MtLjA2IDAtLjExLjAxLS4xNy4wMmgtLjAzYy0uMDYuMDItLjEyLjA0LS4xNy4wN2gtLjAybC0zLjQ3IDIuMDFjLS4yNS4xNC0uNC40MS0uNC43VjE4YzAgLjI5LjE1LjU1LjQuN2wzLjQ4IDIuMDFoLjAyYy4wNi4wNC4xMS4wNi4xNy4wOGguMDNjLjA1LjAyLjExLjAzLjE3LjAzaC4wMmMuMDYgMCAuMTIgMCAuMTgtLjAyaC4wNGMuMDYtLjAzLjEyLS4wNS4xOC0uMDhsMS43NC0xYy42Ny0uMzkgMS41LS4zOSAyLjE3IDBzMS4wOSAxLjExIDEuMDkgMS44OHYyLjAxYzAgLjA3IDAgLjEzLjAyLjE5di4wNGMuMDMuMDYuMDUuMTIuMDguMTd2LjAycy4wOC4wOS4xMi4xM2wuMDIuMDJzLjA5LjA4LjE1LjExYzAgMCAuMDEgMCAuMDEuMDFsMy40OCAyLjAxYy4yNS4xNC41Ni4xNC44MSAwbDMuNDgtMi4wMWMuMjUtLjE0LjQtLjQxLjQtLjd2LTQuMDFhLjgxLjgxIDAgMCAwLS40LS43bC0zLjQ4LTIuMDFoLS4wMmMtLjA1LS4wNC0uMTEtLjA2LS4xNy0uMDhoLS4wM2EuNS41IDAgMCAwLS4xNy0uMDNoLS4wM2MtLjA2IDAtLjEyIDAtLjE4LjAyLS4wNy4wMi0uMTUuMDUtLjIxLjA4bC0xLjc0IDFjLS42Ny4zOS0xLjUuMzktMi4xNyAwYTIuMTkgMi4xOSAwIDAgMS0xLjA5LTEuODhjMC0uNzguNDItMS40OSAxLjA5LTEuODhaIiBzdHlsZT0iZmlsbDojNWRiZjlkIi8+PHBhdGggZD0ibS40IDEzLjExIDMuNDcgMi4wMWMuMjUuMTQuNTYuMTQuOCAwbDMuNDctMi4wMWguMDFsLjE1LS4xMi4wMi0uMDJzLjA3LS4wOS4xLS4xNGwuMDItLjAyYy4wMy0uMDUuMDUtLjExLjA3LS4xN3YtLjA0Yy4wMy0uMDYuMDMtLjEyLjAzLS4xOVYxMC40YzAtLjc4LjQyLTEuNDkgMS4wOS0xLjg4czEuNS0uMzkgMi4xOCAwbDEuNzQgMWMuMDcuMDQuMTQuMDcuMjEuMDguMDYuMDEuMTIuMDIuMTguMDJoLjAzYy4wNiAwIC4xMS0uMDEuMTctLjAyaC4wM2MuMDYtLjAyLjEyLS4wNC4xNy0uMDdoLjAybDMuNDctMi4wMmMuMjUtLjE0LjQtLjQxLjQtLjd2LTRhLjgxLjgxIDAgMCAwLS40LS43bC0zLjQ2LTJhLjgzLjgzIDAgMCAwLS44MSAwbC0zLjQ4IDIuMDFoLS4wMWwtLjE1LjEyLS4wMi4wMi0uMS4xMy0uMDIuMDJjLS4wMy4wNS0uMDUuMTEtLjA3LjE3di4wNGMtLjAzLjA2LS4wMy4xMi0uMDMuMTl2Mi4wMWMwIC43OC0uNDIgMS40OS0xLjA5IDEuODhzLTEuNS4zOS0yLjE4IDBsLTEuNzQtMWEuNi42IDAgMCAwLS4yMS0uMDhjLS4wNi0uMDEtLjEyLS4wMi0uMTgtLjAyaC0uMDNjLS4wNiAwLS4xMS4wMS0uMTcuMDJoLS4wM2MtLjA2LjAyLS4xMi4wNS0uMTcuMDhoLS4wMkwuNCA3LjcxYy0uMjUuMTQtLjQuNDEtLjQuNjl2NC4wMWMwIC4yOS4xNS41Ni40LjciIHN0eWxlPSJmaWxsOiM0NDY4YzQiLz48cGF0aCBkPSJtMTcuODQgMjQuNDgtMy40OC0yLjAxaC0uMDJjLS4wNS0uMDQtLjExLS4wNi0uMTctLjA4aC0uMDNhLjUuNSAwIDAgMC0uMTctLjAzaC0uMDNjLS4wNiAwLS4xMiAwLS4xOC4wMmgtLjA0Yy0uMDYuMDMtLjEyLjA1LS4xOC4wOGwtMS43NCAxYy0uNjcuMzktMS41LjM5LTIuMTggMGEyLjE5IDIuMTkgMCAwIDEtMS4wOS0xLjg4di0yLjAxYzAtLjA2IDAtLjEzLS4wMi0uMTl2LS4wNGMtLjAzLS4wNi0uMDUtLjExLS4wOC0uMTdsLS4wMi0uMDJzLS4wNi0uMDktLjEtLjEzTDguMjkgMTlzLS4wOS0uMDgtLjE1LS4xMWgtLjAxbC0zLjQ3LTIuMDJhLjgzLjgzIDAgMCAwLS44MSAwTC4zNyAxOC44OGEuODcuODcgMCAwIDAtLjM3LjcxdjQuMDFjMCAuMjkuMTUuNTUuNC43bDMuNDcgMi4wMWguMDJjLjA1LjA0LjExLjA2LjE3LjA4aC4wM2MuMDUuMDIuMTEuMDMuMTYuMDNoLjAzYy4wNiAwIC4xMiAwIC4xOC0uMDJoLjA0Yy4wNi0uMDMuMTItLjA1LjE4LS4wOGwxLjc0LTFjLjY3LS4zOSAxLjUtLjM5IDIuMTcgMHMxLjA5IDEuMTEgMS4wOSAxLjg4djIuMDFjMCAuMDcgMCAuMTMuMDIuMTl2LjA0Yy4wMy4wNi4wNS4xMS4wOC4xN2wuMDIuMDJzLjA2LjA5LjEuMTRsLjAyLjAycy4wOS4wOC4xNS4xMWguMDFsMy40OCAyLjAyYy4yNS4xNC41Ni4xNC44MSAwbDMuNDgtMi4wMWMuMjUtLjE0LjQtLjQxLjQtLjdWMjUuMmEuODEuODEgMCAwIDAtLjQtLjdaIiBzdHlsZT0iZmlsbDojNDI5M2Q5Ii8+PC9zdmc+
[deepwiki-link]: https://deepwiki.com/CherryHQ/cherry-studio
[twitter-shield]: https://img.shields.io/badge/Twitter-CherryStudioApp-0088CC?style=plastic&logo=x
[twitter-shield]: https://img.shields.io/badge/Twitter-CherryStudioApp-0088CC?logo=x
[twitter-link]: https://twitter.com/CherryStudioHQ
[discord-shield]: https://img.shields.io/badge/Discord-@CherryStudio-0088CC?style=plastic&logo=discord
[discord-shield]: https://img.shields.io/badge/Discord-@CherryStudio-0088CC?logo=discord
[discord-link]: https://discord.gg/wez8HtpxqQ
[telegram-shield]: https://img.shields.io/badge/Telegram-@CherryStudioAI-0088CC?style=plastic&logo=telegram
[telegram-shield]: https://img.shields.io/badge/Telegram-@CherryStudioAI-0088CC?logo=telegram
[telegram-link]: https://t.me/CherryStudioAI
<!-- Links & Images -->
[github-stars-shield]: https://img.shields.io/github/stars/CherryHQ/cherry-studio?style=social
[github-stars-link]: https://github.com/CherryHQ/cherry-studio/stargazers
[github-forks-shield]: https://img.shields.io/github/forks/CherryHQ/cherry-studio?style=social
[github-forks-link]: https://github.com/CherryHQ/cherry-studio/network
[github-release-shield]: https://img.shields.io/github/v/release/CherryHQ/cherry-studio
[github-release-shield]: https://img.shields.io/github/v/release/CherryHQ/cherry-studio?logo=github
[github-release-link]: https://github.com/CherryHQ/cherry-studio/releases
[github-contributors-shield]: https://img.shields.io/github/contributors/CherryHQ/cherry-studio
[github-nightly-shield]: https://img.shields.io/github/actions/workflow/status/CherryHQ/cherry-studio/nightly-build.yml?label=nightly%20build&logo=github
[github-nightly-link]: https://github.com/CherryHQ/cherry-studio/actions/workflows/nightly-build.yml
[github-contributors-shield]: https://img.shields.io/github/contributors/CherryHQ/cherry-studio?logo=github
[github-contributors-link]: https://github.com/CherryHQ/cherry-studio/graphs/contributors
<!-- Links & Images -->
[license-shield]: https://img.shields.io/badge/License-AGPLv3-important.svg?style=plastic&logo=gnu
[license-shield]: https://img.shields.io/badge/License-AGPLv3-important.svg?logo=gnu
[license-link]: https://www.gnu.org/licenses/agpl-3.0
[commercial-shield]: https://img.shields.io/badge/License-Contact-white.svg?style=plastic&logoColor=white&logo=telegram&color=blue
[commercial-shield]: https://img.shields.io/badge/License-Contact-white.svg?logoColor=white&logo=telegram&color=blue
[commercial-link]: mailto:license@cherry-ai.com?subject=Commercial%20License%20Inquiry
[sponsor-shield]: https://img.shields.io/badge/Sponsor-FF6699.svg?style=plastic&logo=githubsponsors&logoColor=white
[sponsor-shield]: https://img.shields.io/badge/Sponsor-FF6699.svg?logo=githubsponsors&logoColor=white
[sponsor-link]: https://github.com/CherryHQ/cherry-studio/blob/main/docs/sponsor.md

View File

@@ -1,6 +1,6 @@
# Cherry Studio 贡献者指南
[**English**](../CONTRIBUTING.md) | [**中文**](./CONTRIBUTING.zh.md)
[**English**](../CONTRIBUTING.md) | [**中文**](CONTRIBUTING.zh.md)
欢迎来到 Cherry Studio 的贡献者社区!我们致力于将 Cherry Studio 打造成一个长期提供价值的项目,并希望邀请更多的开发者加入我们的行列。无论您是经验丰富的开发者还是刚刚起步的初学者,您的贡献都将帮助我们更好地服务用户,提升软件质量。
@@ -24,7 +24,7 @@
## 开始之前
请确保阅读了[行为准则](CODE_OF_CONDUCT.md)和[LICENSE](LICENSE)。
请确保阅读了[行为准则](../CODE_OF_CONDUCT.md)和[LICENSE](../LICENSE)。
## 开始贡献
@@ -32,7 +32,7 @@
### 测试
未经测试的功能等同于不存在。为确保代码真正有效,应通过单元测试和功能测试覆盖相关流程。因此,在考虑贡献时,也请考虑可测试性。所有测试均可本地运行,无需依赖 CI。请参阅[开发者指南](docs/dev.md#test)中的“Test”部分。
未经测试的功能等同于不存在。为确保代码真正有效,应通过单元测试和功能测试覆盖相关流程。因此,在考虑贡献时,也请考虑可测试性。所有测试均可本地运行,无需依赖 CI。请参阅[开发者指南](dev.md#test)中的“Test”部分。
### 拉取请求的自动化测试
@@ -60,7 +60,11 @@ git commit --signoff -m "Your commit message"
### 获取代码审查/合并
维护者在此帮助您在合理时间内实现您的用例。他们会尽力在合理时间内审查您的代码并提供建设性反馈。但如果您在审查过程中受阻,或认为您的 Pull Request 未得到应有的关注,请通过 Issue 中的评论或者[社群](README.md#-community)联系我们
维护者在此帮助您在合理时间内实现您的用例。他们会尽力在合理时间内审查您的代码并提供建设性反馈。但如果您在审查过程中受阻,或认为您的 Pull Request 未得到应有的关注,请通过 Issue 中的评论或者[社群](README.zh.md#-community)联系我们
### 参与测试计划
测试计划旨在为用户提供更稳定的应用体验和更快的迭代速度,详细情况请参阅[测试计划](testplan-zh.md)。
### 其他建议

View File

@@ -1,215 +0,0 @@
<h1 align="center">
<a href="https://github.com/CherryHQ/cherry-studio/releases">
<img src="https://github.com/CherryHQ/cherry-studio/blob/main/build/icon.png?raw=true" width="150" height="150" alt="banner" /><br>
</a>
</h1>
<p align="center">
<a href="https://github.com/CherryHQ/cherry-studio">English</a> | <a href="./README.zh.md">中文</a> | 日本語 | <a href="https://cherry-ai.com">公式サイト</a> | <a href="https://docs.cherry-ai.com/cherry-studio-wen-dang/ja">ドキュメント</a> | <a href="./dev.md">開発</a> | <a href="https://github.com/CherryHQ/cherry-studio/issues">フィードバック</a><br>
</p>
<!-- バッジコレクション -->
<div align="center">
[![][deepwiki-shield]][deepwiki-link]
[![][twitter-shield]][twitter-link]
[![][discord-shield]][discord-link]
[![][telegram-shield]][telegram-link]
</div>
<!-- プロジェクト統計 -->
<div align="center">
[![][github-stars-shield]][github-stars-link]
[![][github-forks-shield]][github-forks-link]
[![][github-release-shield]][github-release-link]
[![][github-contributors-shield]][github-contributors-link]
</div>
<div align="center">
[![][license-shield]][license-link]
[![][commercial-shield]][commercial-link]
[![][sponsor-shield]][sponsor-link]
</div>
<div align="center">
<a href="https://hellogithub.com/repository/1605492e1e2a4df3be07abfa4578dd37" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=1605492e1e2a4df3be07abfa4578dd37" alt="FeaturedHelloGitHub" style="width: 200px; height: 43px;" width="200" height="43" /></a>
<a href="https://trendshift.io/repositories/11772" target="_blank"><img src="https://trendshift.io/api/badge/repositories/11772" alt="kangfenmao%2Fcherry-studio | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
<a href="https://www.producthunt.com/posts/cherry-studio?embed=true&utm_source=badge-featured&utm_medium=badge&utm_souce=badge-cherry&#0045;studio" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=496640&theme=light" alt="Cherry&#0032;Studio - AI&#0032;Chatbots&#0044;&#0032;AI&#0032;Desktop&#0032;Client | Product Hunt" style="width: 200px; height: 43px;" width="200" height="43" /></a>
</div>
# 🍒 Cherry Studio
Cherry Studio は、複数の LLM プロバイダーをサポートするデスクトップクライアントで、Windows、Mac、Linux で利用可能です。
👏 [Telegram](https://t.me/CherryStudioAI)[Discord](https://discord.gg/wez8HtpxqQ) | [QQグループ(575014769)](https://qm.qq.com/q/lo0D4qVZKi)
❤️ Cherry Studio をお気に入りにしましたか?小さな星をつけてください 🌟 または [スポンサー](sponsor.md) をして開発をサポートしてください!
# 🌠 スクリーンショット
![](https://github.com/user-attachments/assets/36dddb2c-e0fb-4a5f-9411-91447bab6e18)
![](https://github.com/user-attachments/assets/f549e8a0-2385-40b4-b52b-2039e39f2930)
![](https://github.com/user-attachments/assets/58e0237c-4d36-40de-b428-53051d982026)
# 🌟 主な機能
1. **多様な LLM サービス対応**
- ☁️ 主要な LLM クラウドサービス対応OpenAI、Gemini、Anthropic など
- 🔗 AI Web サービス統合Claude、Peplexity、Poe など
- 💻 Ollama、LM Studio によるローカルモデル実行対応
2. **AI アシスタントと対話**
- 📚 300+ の事前設定済み AI アシスタント
- 🤖 カスタム AI アシスタントの作成
- 💬 複数モデルでの同時対話機能
3. **文書とデータ処理**
- 📄 テキスト、画像、Office、PDF など多様な形式対応
- ☁️ WebDAV によるファイル管理とバックアップ
- 📊 Mermaid による図表作成
- 💻 コードハイライト機能
4. **実用的なツール統合**
- 🔍 グローバル検索機能
- 📝 トピック管理システム
- 🔤 AI による翻訳機能
- 🎯 ドラッグ&ドロップによる整理
- 🔌 ミニプログラム対応
- ⚙️ MCPモデルコンテキストプロトコルサービス
5. **優れたユーザー体験**
- 🖥️ Windows、Mac、Linux のクロスプラットフォーム対応
- 📦 環境構築不要ですぐに使用可能
- 🎨 ライト/ダークテーマと透明ウィンドウ対応
- 📝 完全な Markdown レンダリング
- 🤲 簡単な共有機能
# 📝 開発計画
以下の機能と改善に積極的に取り組んでいます:
1. 🎯 **コア機能**
- 選択アシスタント - スマートな内容選択の強化
- ディープリサーチ - 高度な研究能力
- メモリーシステム - グローバルコンテキスト認識
- ドキュメント前処理 - 文書処理の改善
- MCP マーケットプレイス - モデルコンテキストプロトコルエコシステム
2. 🗂 **ナレッジ管理**
- ノートとコレクション
- ダイナミックキャンバス可視化
- OCR 機能
- TTSテキスト読み上げサポート
3. 📱 **プラットフォーム対応**
- HarmonyOS エディション
- Android アプリフェーズ1
- iOS アプリフェーズ1
- マルチウィンドウ対応
- ウィンドウピン留め機能
4. 🔌 **高度な機能**
- プラグインシステム
- ASR音声認識
- アシスタントとトピックの対話機能リファクタリング
[プロジェクトボード](https://github.com/orgs/CherryHQ/projects/7)で進捗を確認し、貢献することができます。
開発計画に影響を与えたいですか?[GitHub ディスカッション](https://github.com/CherryHQ/cherry-studio/discussions)に参加して、アイデアやフィードバックを共有してください!
# 🌈 テーマ
- テーマギャラリーhttps://cherrycss.com
- Aero テーマhttps://github.com/hakadao/CherryStudio-Aero
- PaperMaterial テーマhttps://github.com/rainoffallingstar/CherryStudio-PaperMaterial
- Claude テーマhttps://github.com/bjl101501/CherryStudio-Claudestyle-dynamic
- メープルネオンテーマhttps://github.com/BoningtonChen/CherryStudio_themes
より多くのテーマの PR を歓迎します
# 🤝 貢献
Cherry Studio への貢献を歓迎します!以下の方法で貢献できます:
1. **コードの貢献**:新機能を開発するか、既存のコードを最適化します
2. **バグの修正**:見つけたバグを修正します
3. **問題の管理**GitHub の問題を管理するのを手伝います
4. **製品デザイン**:デザインの議論に参加します
5. **ドキュメントの作成**:ユーザーマニュアルやガイドを改善します
6. **コミュニティの参加**:ディスカッションに参加し、ユーザーを支援します
7. **使用の促進**Cherry Studio を広めます
[ブランチ戦略](branching-strategy-en.md)を参照して貢献ガイドラインを確認してください
## 始め方
1. **リポジトリをフォーク**:フォークしてローカルマシンにクローンします
2. **ブランチを作成**:変更のためのブランチを作成します
3. **変更を提出**:変更をコミットしてプッシュします
4. **プルリクエストを開く**:変更内容と理由を説明します
詳細なガイドラインについては、[貢献ガイド](../CONTRIBUTING.md)をご覧ください。
ご支援と貢献に感謝します!
# 🔗 関連プロジェクト
- [one-api](https://github.com/songquanpeng/one-api)LLM API の管理・配信システム。OpenAI、Azure、Anthropic などの主要モデルに対応し、統一 API インターフェースを提供。API キー管理と再配布に利用可能。
- [ublacklist](https://github.com/iorate/ublacklist)Google 検索結果から特定のサイトを非表示にします
# 🚀 コントリビューター
<a href="https://github.com/CherryHQ/cherry-studio/graphs/contributors">
<img src="https://contrib.rocks/image?repo=CherryHQ/cherry-studio" />
</a>
<br /><br />
# ⭐️ スター履歴
[![Star History Chart](https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Timeline)](https://star-history.com/#CherryHQ/cherry-studio&Timeline)
<!-- リンクと画像 -->
[deepwiki-shield]: https://img.shields.io/badge/Deepwiki-CherryHQ-0088CC?style=plastic
[deepwiki-link]: https://deepwiki.com/CherryHQ/cherry-studio
[twitter-shield]: https://img.shields.io/badge/Twitter-CherryStudioApp-0088CC?style=plastic&logo=x
[twitter-link]: https://twitter.com/CherryStudioHQ
[discord-shield]: https://img.shields.io/badge/Discord-@CherryStudio-0088CC?style=plastic&logo=discord
[discord-link]: https://discord.gg/wez8HtpxqQ
[telegram-shield]: https://img.shields.io/badge/Telegram-@CherryStudioAI-0088CC?style=plastic&logo=telegram
[telegram-link]: https://t.me/CherryStudioAI
<!-- プロジェクト統計 -->
[github-stars-shield]: https://img.shields.io/github/stars/CherryHQ/cherry-studio?style=social
[github-stars-link]: https://github.com/CherryHQ/cherry-studio/stargazers
[github-forks-shield]: https://img.shields.io/github/forks/CherryHQ/cherry-studio?style=social
[github-forks-link]: https://github.com/CherryHQ/cherry-studio/network
[github-release-shield]: https://img.shields.io/github/v/release/CherryHQ/cherry-studio
[github-release-link]: https://github.com/CherryHQ/cherry-studio/releases
[github-contributors-shield]: https://img.shields.io/github/contributors/CherryHQ/cherry-studio
[github-contributors-link]: https://github.com/CherryHQ/cherry-studio/graphs/contributors
<!-- ライセンスとスポンサー -->
[license-shield]: https://img.shields.io/badge/License-AGPLv3-important.svg?style=plastic&logo=gnu
[license-link]: https://www.gnu.org/licenses/agpl-3.0
[commercial-shield]: https://img.shields.io/badge/商用ライセンス-お問い合わせ-white.svg?style=plastic&logoColor=white&logo=telegram&color=blue
[commercial-link]: mailto:license@cherry-ai.com?subject=商業ライセンスについて
[sponsor-shield]: https://img.shields.io/badge/スポンサー-FF6699.svg?style=plastic&logo=githubsponsors&logoColor=white
[sponsor-link]: https://github.com/CherryHQ/cherry-studio/blob/main/docs/sponsor.md

View File

@@ -1,10 +1,40 @@
<div align="right" >
<details>
<summary >🌐 Language</summary>
<div>
<div align="right">
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=en">English</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=zh-CN">简体中文</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=zh-TW">繁體中文</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ja">日本語</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ko">한국어</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=hi">हिन्दी</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=th">ไทย</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=fr">Français</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=de">Deutsch</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=es">Español</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=it">Itapano</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ru">Русский</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=pt">Português</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=nl">Nederlands</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=pl">Polski</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=ar">العربية</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=fa">فارسی</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=tr">Türkçe</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=vi">Tiếng Việt</a></p>
<p><a href="https://openaitx.github.io/view.html?user=CherryHQ&project=cherry-studio&lang=id">Bahasa Indonesia</a></p>
</div>
</div>
</details>
</div>
<h1 align="center">
<a href="https://github.com/CherryHQ/cherry-studio/releases">
<img src="https://github.com/CherryHQ/cherry-studio/blob/main/build/icon.png?raw=true" width="150" height="150" alt="banner" /><br>
</a>
</h1>
<p align="center">
<a href="https://github.com/CherryHQ/cherry-studio">English</a> | 中文 | <a href="./README.ja.md">日本語</a> | <a href="https://cherry-ai.com">官方网站</a> | <a href="https://docs.cherry-ai.com/cherry-studio-wen-dang/zh-cn">文档</a> | <a href="./dev.md">开发</a> | <a href="https://github.com/CherryHQ/cherry-studio/issues">反馈</a><br>
<a href="https://github.com/CherryHQ/cherry-studio">English</a> | 中文 | <a href="https://cherry-ai.com">官方网站</a> | <a href="https://docs.cherry-ai.com/cherry-studio-wen-dang/zh-cn">文档</a> | <a href="./dev.md">开发</a> | <a href="https://github.com/CherryHQ/cherry-studio/issues">反馈</a><br>
</p>
<!-- 题头徽章组合 -->
@@ -18,19 +48,10 @@
</div>
<!-- 项目统计徽章 -->
<div align="center">
[![][github-stars-shield]][github-stars-link]
[![][github-forks-shield]][github-forks-link]
[![][github-release-shield]][github-release-link]
[![][github-contributors-shield]][github-contributors-link]
</div>
<div align="center">
[![][license-shield]][license-link]
[![][commercial-shield]][commercial-link]
[![][sponsor-shield]][sponsor-link]
@@ -38,9 +59,9 @@
</div>
<div align="center">
<a href="https://hellogithub.com/repository/1605492e1e2a4df3be07abfa4578dd37" target="_blank"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=1605492e1e2a4df3be07abfa4578dd37" alt="FeaturedHelloGitHub" style="width: 200px; height: 43px;" width="200" height="43" /></a>
<a href="https://trendshift.io/repositories/11772" target="_blank"><img src="https://trendshift.io/api/badge/repositories/11772" alt="kangfenmao%2Fcherry-studio | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
<a href="https://www.producthunt.com/posts/cherry-studio?embed=true&utm_source=badge-featured&utm_medium=badge&utm_souce=badge-cherry&#0045;studio" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=496640&theme=light" alt="Cherry&#0032;Studio - AI&#0032;Chatbots&#0044;&#0032;AI&#0032;Desktop&#0032;Client | Product Hunt" style="width: 200px; height: 43px;" width="200" height="43" /></a>
<a href="https://hellogithub.com/repository/1605492e1e2a4df3be07abfa4578dd37" target="_blank" style="text-decoration: none"><img src="https://api.hellogithub.com/v1/widgets/recommend.svg?rid=1605492e1e2a4df3be07abfa4578dd37" alt="FeaturedHelloGitHub" width="220" height="55" /></a>
<a href="https://trendshift.io/repositories/11772" target="_blank" style="text-decoration: none"><img src="https://trendshift.io/api/badge/repositories/11772" alt="kangfenmao%2Fcherry-studio | Trendshift" width="220" height="55" /></a>
<a href="https://www.producthunt.com/posts/cherry-studio?embed=true&utm_source=badge-featured&utm_medium=badge&utm_souce=badge-cherry&#0045;studio" target="_blank"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=496640&theme=light" alt="Cherry&#0032;Studio - AI&#0032;Chatbots&#0044;&#0032;AI&#0032;Desktop&#0032;Client | Product Hunt" width="220" height="55" /></a>
</div>
# 🍒 Cherry Studio
@@ -51,14 +72,6 @@ Cherry Studio 是一款支持多个大语言模型LLM服务商的桌面客
❤️ 喜欢 Cherry Studio? 点亮小星星 🌟 或 [赞助开发者](sponsor.md)! ❤️
# GitCode✖Cherry Studio【新源力】贡献挑战赛
<p align="center">
<a href="https://gitcode.com/CherryHQ/cherry-studio/discussion/2">
<img src="https://raw.gitcode.com/user-images/assets/5007375/8d8d7559-1141-4691-b90f-d154558c6896/cherry-studio-gitcode.jpg" width="100%" alt="banner" />
</a>
</p>
# 📖 使用教程
https://docs.cherry-ai.com
@@ -177,10 +190,82 @@ https://docs.cherry-ai.com
3. **提交更改**:提交并推送您的更改
4. **打开 Pull Request**:描述您的更改和原因
有关更详细的指南,请参阅我们的 [贡献指南](./CONTRIBUTING.zh.md)
有关更详细的指南,请参阅我们的 [贡献指南](CONTRIBUTING.zh.md)
感谢您的支持和贡献!
# 🔧 开发者共创计划
我们正在启动 Cherry Studio 开发者共创计划,旨在为开源生态系统构建一个健康、正向反馈的循环。我们相信,优秀的软件是通过协作构建的,每一个合并的拉取请求都为项目注入新的生命力。
我们诚挚地邀请您加入我们的贡献者队伍,与我们一起塑造 Cherry Studio 的未来。
## 贡献者奖励计划
为了回馈我们的核心贡献者并创造良性循环,我们建立了以下长期激励计划。
**该计划的首个跟踪周期将是 2025 年第三季度7月、8月、9月。此周期的奖励将在 10月1日 发放。**
在任何跟踪周期内(例如,首个周期的 7月1日 至 9月30日任何为 Cherry Studio 在 GitHub 上的开源项目贡献超过 **30 个有意义提交** 的开发者都有资格获得以下福利:
- **Cursor 订阅赞助**:获得 **70 美元** 的 [Cursor](https://cursor.sh/) 订阅积分或报销,让 AI 成为您最高效的编码伙伴。
- **无限模型访问**:获得 **DeepSeek****Qwen** 模型的 **无限次** API 调用。
- **前沿技术访问**:享受偶尔的特殊福利,包括 **Claude**、**Gemini** 和 **OpenAI** 等模型的 API 访问权限,让您始终站在技术前沿。
## 共同成长与未来规划
活跃的社区是任何可持续开源项目背后的推动力。随着 Cherry Studio 的发展,我们的奖励计划也将随之发展。我们致力于持续将我们的福利与行业内最优秀的工具和资源保持一致。这确保我们的核心贡献者获得有意义的支持,创造一个开发者、社区和项目共同成长的正向循环。
**展望未来,该项目还将采取越来越开放的态度来回馈整个开源社区。**
## 如何开始?
我们期待您的第一个拉取请求!
您可以从探索我们的仓库开始,选择一个 `good first issue`,或者提出您自己的改进建议。每一个提交都是开源精神的体现。
感谢您的关注和贡献。
让我们一起建设。
# 🏢 企业版
在社区版的基础上,我们自豪地推出 **Cherry Studio 企业版**——一个为现代团队和企业设计的私有部署 AI 生产力与管理平台。
企业版通过集中管理 AI 资源、知识和数据,解决了团队协作中的核心挑战。它赋能组织提升效率、促进创新并确保合规,同时在安全环境中保持对数据的 100% 控制。
## 核心优势
- **统一模型管理**:集中整合和管理各种基于云的大语言模型(如 OpenAI、Anthropic、Google Gemini和本地部署的私有模型。员工可以开箱即用无需单独配置。
- **企业级知识库**:构建、管理和分享全团队的知识库。确保知识得到保留且一致,使团队成员能够基于统一准确的信息与 AI 交互。
- **细粒度访问控制**:通过统一的管理后台轻松管理员工账户,并为不同模型、知识库和功能分配基于角色的权限。
- **完全私有部署**:在您的本地服务器或私有云上部署整个后端服务,确保您的数据 100% 私有且在您的控制之下,满足最严格的安全和合规标准。
- **可靠的后端服务**:提供稳定的 API 服务、企业级数据备份和恢复机制,确保业务连续性。
## ✨ 在线演示
> 🚧 **公开测试版通知**
>
> 企业版目前处于早期公开测试阶段,我们正在积极迭代和优化其功能。我们知道它可能还不够完全稳定。如果您在试用过程中遇到任何问题或有宝贵建议,我们非常感谢您能通过邮件联系我们提供反馈。
**🔗 [Cherry Studio 企业版](https://www.cherry-ai.com/enterprise)**
## 版本对比
| 功能 | 社区版 | 企业版 |
| :----------- | :---------------------- | :--------------------------------------------------------------------------------------------- |
| **开源** | ✅ 是 | ⭕️ 部分开源,对客户开放 |
| **成本** | 个人使用免费 / 商业授权 | 买断 / 订阅费用 |
| **管理后台** | — | ● 集中化**模型**访问<br>● **员工**管理<br>● 共享**知识库**<br>● **访问**控制<br>● **数据**备份 |
| **服务器** | — | ✅ 专用私有部署 |
## 获取企业版
我们相信企业版将成为您团队的 AI 生产力引擎。如果您对 Cherry Studio 企业版感兴趣,希望了解更多信息、请求报价或安排演示,请联系我们。
- **商业咨询与购买**
**📧 [bd@cherry-ai.com](mailto:bd@cherry-ai.com)**
# 🔗 相关项目
- [one-api](https://github.com/songquanpeng/one-api)LLM API 管理及分发系统,支持 OpenAI、Azure、Anthropic 等主流模型,统一 API 接口,可用于密钥管理与二次分发。
@@ -194,34 +279,43 @@ https://docs.cherry-ai.com
</a>
<br /><br />
# 📊 GitHub 统计
![Stats](https://repobeats.axiom.co/api/embed/a693f2e5f773eed620f70031e974552156c7f397.svg 'Repobeats analytics image')
# ⭐️ Star 记录
[![Star History Chart](https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Timeline)](https://star-history.com/#CherryHQ/cherry-studio&Timeline)
<a href="https://www.star-history.com/#CherryHQ/cherry-studio&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=CherryHQ/cherry-studio&type=Date" />
</picture>
</a>
<!-- Links & Images -->
[deepwiki-shield]: https://img.shields.io/badge/Deepwiki-CherryHQ-0088CC?style=plastic
[deepwiki-shield]: https://img.shields.io/badge/Deepwiki-CherryHQ-0088CC
[deepwiki-link]: https://deepwiki.com/CherryHQ/cherry-studio
[twitter-shield]: https://img.shields.io/badge/Twitter-CherryStudioApp-0088CC?style=plastic&logo=x
[twitter-shield]: https://img.shields.io/badge/Twitter-CherryStudioApp-0088CC?logo=x
[twitter-link]: https://twitter.com/CherryStudioHQ
[discord-shield]: https://img.shields.io/badge/Discord-@CherryStudio-0088CC?style=plastic&logo=discord
[discord-shield]: https://img.shields.io/badge/Discord-@CherryStudio-0088CC?logo=discord
[discord-link]: https://discord.gg/wez8HtpxqQ
[telegram-shield]: https://img.shields.io/badge/Telegram-@CherryStudioAI-0088CC?style=plastic&logo=telegram
[telegram-shield]: https://img.shields.io/badge/Telegram-@CherryStudioAI-0088CC?logo=telegram
[telegram-link]: https://t.me/CherryStudioAI
<!-- 项目统计徽章 -->
[github-stars-shield]: https://img.shields.io/github/stars/CherryHQ/cherry-studio?style=social
[github-stars-link]: https://github.com/CherryHQ/cherry-studio/stargazers
[github-forks-shield]: https://img.shields.io/github/forks/CherryHQ/cherry-studio?style=social
[github-forks-link]: https://github.com/CherryHQ/cherry-studio/network
[github-release-shield]: https://img.shields.io/github/v/release/CherryHQ/cherry-studio
[github-release-link]: https://github.com/CherryHQ/cherry-studio/releases
[github-contributors-shield]: https://img.shields.io/github/contributors/CherryHQ/cherry-studio
[github-contributors-link]: https://github.com/CherryHQ/cherry-studio/graphs/contributors
<!-- 许可和赞助徽章 -->
[license-shield]: https://img.shields.io/badge/License-AGPLv3-important.svg?style=plastic&logo=gnu
[license-shield]: https://img.shields.io/badge/License-AGPLv3-important.svg?logo=gnu
[license-link]: https://www.gnu.org/licenses/agpl-3.0
[commercial-shield]: https://img.shields.io/badge/商用授权-联系-white.svg?style=plastic&logoColor=white&logo=telegram&color=blue
[commercial-shield]: https://img.shields.io/badge/商用授权-联系-white.svg?logoColor=white&logo=telegram&color=blue
[commercial-link]: mailto:license@cherry-ai.com?subject=商业授权咨询
[sponsor-shield]: https://img.shields.io/badge/赞助支持-FF6699.svg?style=plastic&logo=githubsponsors&logoColor=white
[sponsor-shield]: https://img.shields.io/badge/赞助支持-FF6699.svg?logo=githubsponsors&logoColor=white
[sponsor-link]: https://github.com/CherryHQ/cherry-studio/blob/main/docs/sponsor.md

View File

@@ -16,6 +16,8 @@ Cherry Studio implements a structured branching strategy to maintain code qualit
- Only accepts documentation updates and bug fixes
- Thoroughly tested before production deployment
For details about the `testplan` branch used in the Test Plan, please refer to the [Test Plan](testplan-en.md).
## Contributing Branches
When contributing to Cherry Studio, please follow these guidelines:

View File

@@ -16,6 +16,8 @@ Cherry Studio 采用结构化的分支策略来维护代码质量并简化开发
- 只接受文档更新和 bug 修复
- 经过完整测试后可以发布到生产环境
关于测试计划所使用的`testplan`分支,请查阅[测试计划](testplan-zh.md)。
## 贡献分支
在为 Cherry Studio 贡献代码时,请遵循以下准则:

99
docs/testplan-en.md Normal file
View File

@@ -0,0 +1,99 @@
# Test Plan
To provide users with a more stable application experience and faster iteration speed, Cherry Studio has launched the "Test Plan".
## User Guide
The Test Plan is divided into the RC channel and the Beta channel, with the following differences:
- **RC (Release Candidate)**: The features are stable, with fewer bugs, and it is close to the official release.
- **Beta**: Features may change at any time, and there may be more bugs, but users can experience future features earlier.
Users can enable the "Test Plan" and select the version channel in the software's `Settings` > `About`. Please note that the versions in the "Test Plan" cannot guarantee data consistency, so be sure to back up your data before using them.
Users are welcome to submit issues or provide feedback through other channels for any bugs encountered during testing. Your feedback is very important to us.
## Developer Guide
### Participating in the Test Plan
Developers should submit `PRs` according to the [Contributor Guide](../CONTRIBUTING.md) (and ensure the target branch is `main`). The repository maintainers will evaluate whether the `PR` should be included in the Test Plan based on factors such as the impact of the feature on the application, its importance, and whether broader testing is needed.
If the `PR` is added to the Test Plan, the repository maintainers will:
- Notify the `PR` submitter.
- Set the PR to `draft` status (to avoid accidental merging into `main` before testing is complete).
- Set the `milestone` to the specific Test Plan version.
- Modify the `PR` title.
During participation in the Test Plan, `PR` submitters should:
- Keep the `PR` branch synchronized with the latest `main` (i.e., the `PR` branch should always be based on the latest `main` code).
- Ensure the `PR` branch is conflict-free.
- Actively respond to comments & reviews and fix bugs.
- Enable maintainers to modify the `PR` branch to allow for bug fixes at any time.
Inclusion in the Test Plan does not guarantee the final merging of the `PR`. It may be shelved due to immature features or poor testing feedback.
### Test Plan Lead
A maintainer will be assigned as the lead for a specific version (e.g., `1.5.0-rc`). The responsibilities of the Test Plan lead include:
- Determining whether a `PR` meets the Test Plan requirements and deciding whether it should be included in the current Test Plan.
- Modifying the status of `PRs` added to the Test Plan and communicating relevant matters with the `PR` submitter.
- Before the Test Plan release, merging the branches of `PRs` added to the Test Plan (using squash merge) into the corresponding version branch of `testplan` and resolving conflicts.
- Ensuring the `testplan` branch is synchronized with the latest `main`.
- Overseeing the Test Plan release.
## In-Depth Understanding
### About `PRs`
A `PR` is a collection of a specific branch (and commits), comments, reviews, and other information, and it is the **smallest management unit** of the Test Plan.
Compared to submitting all features to a single branch, the Test Plan manages features through `PRs`, which offers greater flexibility and efficiency:
- Features can be added or removed between different versions of the Test Plan without cumbersome `revert` operations.
- Clear feature boundaries and responsibilities are established. Bug fixes are completed within their respective `PRs`, isolating cross-impact and better tracking progress.
- The `PR` submitter is responsible for resolving conflicts with the latest `main`. The Test Plan lead is responsible for resolving conflicts between `PR` branches. However, since features added to the Test Plan are relatively independent (in other words, if a feature has broad implications, it should be independently included in the Test Plan), conflicts are generally few or simple.
### The `testplan` Branch
The `testplan` branch is a **temporary** branch used for Test Plan releases.
Note:
- **Do not develop based on this branch**. It may change or even be deleted at any time, and there is no guarantee of commit completeness or order.
- **Do not submit `commits` or `PRs` to this branch**, as they will not be retained.
- The `testplan` branch is always based on the latest `main` branch (not on a released version), with features added on top.
#### RC Branch
Branch name: `testplan/rc/x.y.z`
Used for RC releases, where `x.y.z` is the target version number. Note that whether it is rc.1 or rc.5, as long as the major version number is `x.y.z`, it is completed in this branch.
Generally, the version number for releases from this branch is named `x.y.z-rc.n`.
#### Beta Branch
Branch name: `testplan/beta/x.y.z`
Used for Beta releases, where `x.y.z` is the target version number. Note that whether it is beta.1 or beta.5, as long as the major version number is `x.y.z`, it is completed in this branch.
Generally, the version number for releases from this branch is named `x.y.z-beta.n`.
### Version Rules
The application version number for the Test Plan is: `x.y.z-CHA.n`, where:
- `x.y.z` is the conventional version number, referred to here as the **target version number**.
- `CHA` is the channel code (Channel), currently divided into `rc` and `beta`.
- `n` is the release number, starting from `1`.
Examples of complete version numbers: `1.5.0-rc.3`, `1.5.1-beta.1`, `1.6.0-beta.6`.
The **target version number** of the Test Plan points to the official version number where these features are expected to be added. For example:
- `1.5.0-rc.3` means this is a preview of the `1.5.0` official release (the current latest official release is `1.4.9`, and `1.5.0` has not yet been officially released).
- `1.5.1-beta.1` means this is a beta version of the `1.5.1` official release (the current latest official release is `1.5.0`, and `1.5.1` has not yet been officially released).

99
docs/testplan-zh.md Normal file
View File

@@ -0,0 +1,99 @@
# 测试计划
为了给用户提供更稳定的应用体验并提供更快的迭代速度Cherry Studio推出“测试计划”。
## 用户指南
测试计划分为RC版通道和Beta版通道吗区别在于
- **RC版预览版**RC即Release Candidate功能已经稳定BUG较少接近正式版
- **Beta版测试版**功能可能随时变化BUG较多可以较早体验未来功能
用户可以在软件的`设置`-`关于`中,开启“测试计划”并选择版本通道。请注意“测试计划”的版本无法保证数据的一致性,请使用前一定要备份数据。
用户在测试过程中发现的BUG欢迎提交issue或通过其他渠道反馈。用户的反馈对我们非常重要。
## 开发者指南
### 参与测试计划
开发者按照[贡献者指南](CONTRIBUTING.zh.md)要求正常提交`PR`并注意提交target为`main`)。仓库维护者会综合考虑(例如该功能对应用的影响程度,功能的重要性,是否需要更广泛的测试等),决定该`PR`是否应加入测试计划。
若该`PR`加入测试计划,仓库维护者会做如下操作:
- 通知`PR`提交人
- 设置PR为`draft`状态(避免在测试完成前意外并入`main`
- `milestone`设置为具体测试计划版本
- 修改`PR`标题
`PR`提交人在参与测试计划过程中,应做到:
- 保持`PR`分支与最新`main`同步(即`PR`分支总是应基于最新`main`代码)
- 保持`PR`分支为无冲突状态
- 积极响应 comments & reviews修复bug
- 开启维护者可以修改`PR`分支的权限以便维护者能随时修改BUG
加入测试计划并不保证`PR`的最终合并,也有可能由于功能不成熟或测试反馈不佳而搁置
### 测试计划负责人
某个维护者会被指定为某个版本期间(例如`1.5.0-rc`)的测试计划负责人。测试计划负责人的工作为:
- 判断某个`PR`是否符合测试计划要求,并决定是否应合入当期测试计划
- 修改加入测试计划的`PR`状态,并与`PR`提交人沟通相关事宜
- 在测试计划发版前,将加入测试计划的`PR`分支逐一合并采用squash merge`testplan`对应版本分支,并解决冲突
- 保证`testplan`分支与最新`main`同步
- 负责测试计划发版
## 深入理解
### 关于`PR`
`PR`是特定分支及commits、comments、reviews等各种信息的集合也是测试计划的**最小管理单元**。
相比将所有功能都提交到某个分支,测试计划通过`PR`来管理功能,这可以带来极大的灵活度和效率:
- 测试计划的各个版本间,可以随意增减功能,而无需繁琐的`revert`操作
- 明确了功能边界和负责人bug修复在各自`PR`中完成,隔离了交叉影响,也能更好观察进度
- `PR`提交人负责与最新`main`之间的冲突;测试计划负责人负责各`PR`分支之间的冲突,但因加入测试计划的各功能相对比较独立(话句话说,如果功能牵涉较广,则应独立上测试计划),冲突一般比较少或简单。
### `testplan`分支
`testplan`分支是用于测试计划发版所用的**临时**分支。
注意:
- **请勿基于该分支开发**。该分支随时会变化甚至删除且并不保证commit的完整和顺序。
- **请勿向该分支提交`commit``PR`**,将不会得到保留
- `testplan`分支总是基于最新`main`分支(而不是基于已发布版本),在其之上添加功能
#### RC版分支
分支名称:`testplan/rc/x.y.z`
用于RC版的发版x.y.z为目标版本号注意无论是rc.1还是rc.5只要主版本号为x.y.z都在该分支完成。
一般而言,该分支发版的版本号命名为`x.y.z-rc.n`
#### Beta版分支
分支名称:`testplan/beta/x.y.z`
用于Beta版的发版x.y.z为目标版本号注意无论是beta.1还是beta.5只要主版本号为x.y.z都在该分支完成。
一般而言,该分支发版的版本号命名为`x.y.z-beta.n`
### 版本规则
测试计划的应用版本号为:`x.y.z-CHA.n`,其中:
- `x.y.z`为一般意义上的版本号,在这里称为**目标版本号**
- `CHA`为通道号Channel现在分为`rc``beta`
- `n`为发版编号,从`1`计数
完整的版本号举例:`1.5.0-rc.3``1.5.1-beta.1``1.6.0-beta.6`
测试计划的**目标版本号**指向希望添加这些功能的正式版版本号。例如:
- `1.5.0-rc.3`是指,这是`1.5.0`正式版的预览版(当前最新正式版是`1.4.9`,而`1.5.0`正式版还未发布)
- `1.5.1-beta.1`是指,这是`1.5.1`正式版的测试版(当前最新正式版是`1.5.0`,而`1.5.1`正式版还未发布)

View File

@@ -11,6 +11,11 @@ electronLanguages:
- en # for macOS
directories:
buildResources: build
protocols:
- name: Cherry Studio
schemes:
- cherrystudio
files:
- '**/*'
- '!**/{.vscode,.yarn,.yarn-lock,.github,.cursorrules,.prettierrc}'
@@ -48,7 +53,11 @@ files:
- '!node_modules/pdf-parse/lib/pdf.js/{v1.9.426,v1.10.88,v2.0.550}'
- '!node_modules/mammoth/{mammoth.browser.js,mammoth.browser.min.js}'
- '!node_modules/selection-hook/prebuilds/**/*' # we rebuild .node, don't use prebuilds
- '!**/*.{h,iobj,ipdb,tlog,recipe,vcxproj,vcxproj.filters}' # filter .node build files
- '!node_modules/pdfjs-dist/web/**/*'
- '!node_modules/pdfjs-dist/legacy/web/*'
- '!node_modules/selection-hook/node_modules' # we don't need what in the node_modules dir
- '!node_modules/selection-hook/src' # we don't need source files
- '!**/*.{h,iobj,ipdb,tlog,recipe,vcxproj,vcxproj.filters,Makefile,*.Makefile}' # filter .node build files
asarUnpack:
- resources/**
- '**/*.{metal,exp,lib}'
@@ -90,6 +99,7 @@ linux:
artifactName: ${productName}-${version}-${arch}.${ext}
target:
- target: AppImage
- target: deb
maintainer: electronjs.org
category: Utility
desktop:
@@ -107,11 +117,9 @@ afterSign: scripts/notarize.js
artifactBuildCompleted: scripts/artifact-build-completed.js
releaseInfo:
releaseNotes: |
划词助手:支持文本选择快捷键、开关快捷键、思考块支持和引用功能
复制功能新增纯文本复制去除Markdown格式符号
知识库:支持设置向量维度修复Ollama分数错误和维度编辑问题
多语言:增加模型名称多语言提示和翻译源语言手动选择
文件管理:修复主题/消息删除时文件未清理问题,优化文件选择流程
模型修复Gemini模型推理预算、Voyage AI嵌入问题和DeepSeek翻译模型更新
图像功能统一图片查看器支持Base64图片渲染修复图片预览相关问题
UI实现标签折叠/拖拽排序,修复气泡溢出,增加引文索引显示
划词助手:支持 macOS 系统
文档处理:增加 MinerU、Doc2xMistral 等服务商支持
知识库:新的知识库界面,增加扫描版 PDF 支持
OCRmacOS 增加系统 OCR 支持
服务商:支持一键添加服务商,新增 PH8 大模型开放平台, 支持 PPIO OAuth 登录
修复Linux下数据目录移动问题

View File

@@ -1,4 +1,5 @@
import react from '@vitejs/plugin-react-swc'
import { CodeInspectorPlugin } from 'code-inspector-plugin'
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
import { resolve } from 'path'
import { visualizer } from 'rollup-plugin-visualizer'
@@ -19,7 +20,7 @@ export default defineConfig({
},
build: {
rollupOptions: {
external: ['@libsql/client', 'bufferutil', 'utf-8-validate'],
external: ['@libsql/client', 'bufferutil', 'utf-8-validate', '@cherrystudio/mac-system-ocr'],
output: {
// 彻底禁用代码分割 - 返回 null 强制单文件打包
manualChunks: undefined,
@@ -59,6 +60,14 @@ export default defineConfig({
]
]
}),
// 只在开发环境下启用 CodeInspectorPlugin
...(process.env.NODE_ENV === 'development'
? [
CodeInspectorPlugin({
bundler: 'vite'
})
]
: []),
...visualizerPlugin('renderer')
],
resolve: {
@@ -68,12 +77,16 @@ export default defineConfig({
}
},
optimizeDeps: {
exclude: ['pyodide']
exclude: ['pyodide'],
esbuildOptions: {
target: 'esnext' // for dev
}
},
worker: {
format: 'es'
},
build: {
target: 'esnext', // for build
rollupOptions: {
input: {
index: resolve(__dirname, 'src/renderer/index.html'),

View File

@@ -1,6 +1,6 @@
{
"name": "CherryStudio",
"version": "1.4.2",
"version": "1.4.8",
"private": true,
"description": "A powerful AI assistant for producer.",
"main": "./out/main/index.js",
@@ -58,13 +58,17 @@
"prepare": "husky"
},
"dependencies": {
"@cherrystudio/pdf-to-img-napi": "^0.0.1",
"@libsql/client": "0.14.0",
"@libsql/win32-x64-msvc": "^0.4.7",
"@strongtz/win32-arm64-msvc": "^0.4.7",
"jsdom": "26.1.0",
"macos-release": "^3.4.0",
"node-stream-zip": "^1.15.0",
"notion-helper": "^1.3.22",
"os-proxy-config": "^1.1.2",
"selection-hook": "^0.9.23",
"pdfjs-dist": "4.10.38",
"selection-hook": "^1.0.4",
"turndown": "7.2.0"
},
"devDependencies": {
@@ -99,14 +103,16 @@
"@kangfenmao/keyv-storage": "^0.1.0",
"@langchain/community": "^0.3.36",
"@langchain/ollama": "^0.2.1",
"@mistralai/mistralai": "^1.6.0",
"@modelcontextprotocol/sdk": "^1.11.4",
"@mozilla/readability": "^0.6.0",
"@notionhq/client": "^2.2.15",
"@playwright/test": "^1.52.0",
"@reduxjs/toolkit": "^2.2.5",
"@shikijs/markdown-it": "^3.4.2",
"@shikijs/markdown-it": "^3.7.0",
"@swc/plugin-styled-components": "^7.1.5",
"@tanstack/react-query": "^5.27.0",
"@tanstack/react-virtual": "^3.13.12",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.3.0",
@@ -123,28 +129,31 @@
"@types/react-infinite-scroll-component": "^5.0.0",
"@types/react-window": "^1",
"@types/tinycolor2": "^1",
"@uiw/codemirror-extensions-langs": "^4.23.12",
"@uiw/codemirror-themes-all": "^4.23.12",
"@uiw/react-codemirror": "^4.23.12",
"@types/word-extractor": "^1",
"@uiw/codemirror-extensions-langs": "^4.23.14",
"@uiw/codemirror-themes-all": "^4.23.14",
"@uiw/react-codemirror": "^4.23.14",
"@vitejs/plugin-react-swc": "^3.9.0",
"@vitest/browser": "^3.1.4",
"@vitest/coverage-v8": "^3.1.4",
"@vitest/ui": "^3.1.4",
"@vitest/web-worker": "^3.1.4",
"@xyflow/react": "^12.4.4",
"antd": "^5.22.5",
"antd": "patch:antd@npm%3A5.24.7#~/.yarn/patches/antd-npm-5.24.7-356a553ae5.patch",
"archiver": "^7.0.1",
"async-mutex": "^0.5.0",
"axios": "^1.7.3",
"browser-image-compression": "^2.0.2",
"code-inspector-plugin": "^0.20.14",
"color": "^5.0.0",
"country-flag-emoji-polyfill": "0.1.8",
"dayjs": "^1.11.11",
"dexie": "^4.0.8",
"dexie-react-hooks": "^1.1.7",
"diff": "^7.0.0",
"docx": "^9.0.2",
"dotenv-cli": "^7.4.2",
"electron": "35.4.0",
"electron": "35.6.0",
"electron-builder": "26.0.15",
"electron-devtools-installer": "^3.2.0",
"electron-log": "^5.1.5",
@@ -173,10 +182,9 @@
"lru-cache": "^11.1.0",
"lucide-react": "^0.487.0",
"markdown-it": "^14.1.0",
"mermaid": "^11.6.0",
"mermaid": "^11.7.0",
"mime": "^4.0.4",
"motion": "^12.10.5",
"node-stream-zip": "^1.15.0",
"npx-scope-finder": "^1.2.0",
"officeparser": "^4.1.1",
"openai": "patch:openai@npm%3A5.1.0#~/.yarn/patches/openai-npm-5.1.0-0e7b3ccb07.patch",
@@ -190,7 +198,7 @@
"react-hotkeys-hook": "^4.6.1",
"react-i18next": "^14.1.2",
"react-infinite-scroll-component": "^6.1.0",
"react-markdown": "^9.0.1",
"react-markdown": "^10.1.0",
"react-redux": "^9.1.2",
"react-router": "6",
"react-router-dom": "6",
@@ -199,27 +207,31 @@
"redux": "^5.0.1",
"redux-persist": "^6.0.0",
"rehype-katex": "^7.0.1",
"rehype-mathjax": "^7.0.0",
"rehype-mathjax": "^7.1.0",
"rehype-raw": "^7.0.0",
"remark-cjk-friendly": "^1.1.0",
"remark-gfm": "^4.0.0",
"remark-cjk-friendly": "^1.2.0",
"remark-gfm": "^4.0.1",
"remark-math": "^6.0.0",
"remove-markdown": "^0.6.2",
"rollup-plugin-visualizer": "^5.12.0",
"sass": "^1.88.0",
"shiki": "^3.4.2",
"shiki": "^3.7.0",
"string-width": "^7.2.0",
"styled-components": "^6.1.11",
"tar": "^7.4.3",
"tiny-pinyin": "^1.3.2",
"tokenx": "^0.4.1",
"tokenx": "^1.1.0",
"typescript": "^5.6.2",
"uuid": "^10.0.0",
"vite": "6.2.6",
"vitest": "^3.1.4",
"webdav": "^5.8.0",
"word-extractor": "^1.0.4",
"zipread": "^1.3.3"
},
"optionalDependencies": {
"@cherrystudio/mac-system-ocr": "^0.2.2"
},
"resolutions": {
"pdf-parse@npm:1.1.1": "patch:pdf-parse@npm%3A1.1.1#~/.yarn/patches/pdf-parse-npm-1.1.1-04a6109b2a.patch",
"@langchain/openai@npm:^0.3.16": "patch:@langchain/openai@npm%3A0.3.16#~/.yarn/patches/@langchain-openai-npm-0.3.16-e525b59526.patch",

View File

@@ -3,6 +3,8 @@ export enum IpcChannel {
App_ClearCache = 'app:clear-cache',
App_SetLaunchOnBoot = 'app:set-launch-on-boot',
App_SetLanguage = 'app:set-language',
App_SetEnableSpellCheck = 'app:set-enable-spell-check',
App_SetSpellCheckLanguages = 'app:set-spell-check-languages',
App_ShowUpdateDialog = 'app:show-update-dialog',
App_CheckForUpdate = 'app:check-for-update',
App_Reload = 'app:reload',
@@ -13,20 +15,34 @@ export enum IpcChannel {
App_SetTrayOnClose = 'app:set-tray-on-close',
App_SetTheme = 'app:set-theme',
App_SetAutoUpdate = 'app:set-auto-update',
App_SetFeedUrl = 'app:set-feed-url',
App_SetTestPlan = 'app:set-test-plan',
App_SetTestChannel = 'app:set-test-channel',
App_HandleZoomFactor = 'app:handle-zoom-factor',
App_Select = 'app:select',
App_HasWritePermission = 'app:has-write-permission',
App_Copy = 'app:copy',
App_SetStopQuitApp = 'app:set-stop-quit-app',
App_SetAppDataPath = 'app:set-app-data-path',
App_GetDataPathFromArgs = 'app:get-data-path-from-args',
App_FlushAppData = 'app:flush-app-data',
App_IsNotEmptyDir = 'app:is-not-empty-dir',
App_RelaunchApp = 'app:relaunch-app',
App_IsBinaryExist = 'app:is-binary-exist',
App_GetBinaryPath = 'app:get-binary-path',
App_InstallUvBinary = 'app:install-uv-binary',
App_InstallBunBinary = 'app:install-bun-binary',
App_MacIsProcessTrusted = 'app:mac-is-process-trusted',
App_MacRequestProcessTrust = 'app:mac-request-process-trust',
App_QuoteToMain = 'app:quote-to-main',
App_SetDisableHardwareAcceleration = 'app:set-disable-hardware-acceleration',
Notification_Send = 'notification:send',
Notification_OnClick = 'notification:on-click',
Webview_SetOpenLinkExternal = 'webview:set-open-link-external',
Webview_SetSpellCheckEnabled = 'webview:set-spell-check-enabled',
// Open
Open_Path = 'open:path',
@@ -59,6 +75,9 @@ export enum IpcChannel {
Mcp_ServersUpdated = 'mcp:servers-updated',
Mcp_CheckConnectivity = 'mcp:check-connectivity',
// Python
Python_Execute = 'python:execute',
//copilot
Copilot_GetAuthMessage = 'copilot:get-auth-message',
Copilot_GetCopilotToken = 'copilot:get-copilot-token',
@@ -100,6 +119,7 @@ export enum IpcChannel {
KnowledgeBase_Remove = 'knowledge-base:remove',
KnowledgeBase_Search = 'knowledge-base:search',
KnowledgeBase_Rerank = 'knowledge-base:rerank',
KnowledgeBase_Check_Quota = 'knowledge-base:check-quota',
//file
File_Open = 'file:open',
@@ -110,9 +130,10 @@ export enum IpcChannel {
File_Clear = 'file:clear',
File_Read = 'file:read',
File_Delete = 'file:delete',
File_DeleteDir = 'file:deleteDir',
File_Get = 'file:get',
File_SelectFolder = 'file:selectFolder',
File_Create = 'file:create',
File_CreateTempFile = 'file:createTempFile',
File_Write = 'file:write',
File_WriteWithId = 'file:writeWithId',
File_SaveImage = 'file:saveImage',
@@ -125,6 +146,12 @@ export enum IpcChannel {
File_GetPdfInfo = 'file:getPdfInfo',
Fs_Read = 'fs:read',
// file service
FileService_Upload = 'file-service:upload',
FileService_List = 'file-service:list',
FileService_Delete = 'file-service:delete',
FileService_Retrieve = 'file-service:retrieve',
Export_Word = 'export:word',
Shortcuts_Update = 'shortcuts:update',

View File

@@ -1,7 +1,7 @@
export const imageExts = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp']
export const videoExts = ['.mp4', '.avi', '.mov', '.wmv', '.flv', '.mkv']
export const audioExts = ['.mp3', '.wav', '.ogg', '.flac', '.aac']
export const documentExts = ['.pdf', '.docx', '.pptx', '.xlsx', '.odt', '.odp', '.ods']
export const documentExts = ['.pdf', '.doc', '.docx', '.pptx', '.xlsx', '.odt', '.odp', '.ods']
export const thirdPartyApplicationExts = ['.draftsExport']
export const bookExts = ['.epub']
const textExtsByCategory = new Map([
@@ -406,6 +406,16 @@ export const defaultLanguage = 'en-US'
export enum FeedUrl {
PRODUCTION = 'https://releases.cherry-ai.com',
EARLY_ACCESS = 'https://github.com/CherryHQ/cherry-studio/releases/latest/download'
GITHUB_LATEST = 'https://github.com/CherryHQ/cherry-studio/releases/latest/download',
PRERELEASE_LOWEST = 'https://github.com/CherryHQ/cherry-studio/releases/download/v1.4.0'
}
export const defaultTimeout = 5 * 1000 * 60
export enum UpgradeChannel {
LATEST = 'latest', // 最新稳定版本
RC = 'rc', // 公测版本
BETA = 'beta' // 预览版本
}
export const defaultTimeout = 10 * 1000 * 60
export const occupiedDirs = ['logs', 'Network', 'Partitions/webview/Network']

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,11 @@
import { ProcessingStatus } from '@types'
export type LoaderReturn = {
entriesAdded: number
uniqueId: string
uniqueIds: string[]
loaderType: string
status?: ProcessingStatus
message?: string
messageSource?: 'preprocess' | 'embedding'
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,47 @@
id: 01-ai/yi-large
canonical_slug: 01-ai/yi-large
hugging_face_id: ''
name: '01.AI: Yi Large'
type: chat
created: 1719273600
description: |-
The Yi Large model was designed by 01.AI with the following usecases in mind: knowledge search, data classification, human-like chat bots, and customer service.
It stands out for its multilingual proficiency, particularly in Spanish, Chinese, Japanese, German, and French.
Check out the [launch announcement](https://01-ai.github.io/blog/01.ai-yi-large-llm-launch) to learn more.
context_length: 32768
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Yi
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000003'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- response_format
- structured_outputs
- logit_bias
- logprobs
- top_logprobs
model_provider: 01-ai

View File

@@ -0,0 +1,42 @@
id: aetherwiing/mn-starcannon-12b
canonical_slug: aetherwiing/mn-starcannon-12b
hugging_face_id: aetherwiing/MN-12B-Starcannon-v2
name: 'Aetherwiing: Starcannon 12B'
type: chat
created: 1723507200
description: |-
Starcannon 12B v2 is a creative roleplay and story writing model, based on Mistral Nemo, using [nothingiisreal/mn-celeste-12b](/nothingiisreal/mn-celeste-12b) as a base, with [intervitens/mini-magnum-12b-v1.1](https://huggingface.co/intervitens/mini-magnum-12b-v1.1) merged in using the [TIES](https://arxiv.org/abs/2306.01708) method.
Although more similar to Magnum overall, the model remains very creative, with a pleasant writing style. It is recommended for people wanting more variety than Magnum, and yet more verbose prose than Celeste.
context_length: 16384
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Mistral
instruct_type: chatml
pricing:
prompt: '0.0000008'
completion: '0.0000012'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- repetition_penalty
- top_k
- min_p
- seed
model_provider: aetherwiing

View File

@@ -0,0 +1,38 @@
id: ai21/jamba-1.6-large
canonical_slug: ai21/jamba-1.6-large
hugging_face_id: ai21labs/AI21-Jamba-Large-1.6
name: 'AI21: Jamba 1.6 Large'
type: chat
created: 1741905173
description: |-
AI21 Jamba Large 1.6 is a high-performance hybrid foundation model combining State Space Models (Mamba) with Transformer attention mechanisms. Developed by AI21, it excels in extremely long-context handling (256K tokens), demonstrates superior inference efficiency (up to 2.5x faster than comparable models), and supports structured JSON output and tool-use capabilities. It has 94 billion active parameters (398 billion total), optimized quantization support (ExpertsInt8), and multilingual proficiency in languages such as English, Spanish, French, Portuguese, Italian, Dutch, German, Arabic, and Hebrew.
Usage of this model is subject to the [Jamba Open Model License](https://www.ai21.com/licenses/jamba-open-model-license).
context_length: 256000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.000002'
completion: '0.000008'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- stop
model_provider: ai21

View File

@@ -0,0 +1,38 @@
id: ai21/jamba-1.6-mini
canonical_slug: ai21/jamba-1.6-mini
hugging_face_id: ai21labs/AI21-Jamba-Mini-1.6
name: 'AI21: Jamba Mini 1.6'
type: chat
created: 1741905171
description: |-
AI21 Jamba Mini 1.6 is a hybrid foundation model combining State Space Models (Mamba) with Transformer attention mechanisms. With 12 billion active parameters (52 billion total), this model excels in extremely long-context tasks (up to 256K tokens) and achieves superior inference efficiency, outperforming comparable open models on tasks such as retrieval-augmented generation (RAG) and grounded question answering. Jamba Mini 1.6 supports multilingual tasks across English, Spanish, French, Portuguese, Italian, Dutch, German, Arabic, and Hebrew, along with structured JSON output and tool-use capabilities.
Usage of this model is subject to the [Jamba Open Model License](https://www.ai21.com/licenses/jamba-open-model-license).
context_length: 256000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000002'
completion: '0.0000004'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- stop
model_provider: ai21

View File

@@ -0,0 +1,34 @@
id: aion-labs/aion-1.0-mini
canonical_slug: aion-labs/aion-1.0-mini
hugging_face_id: FuseAI/FuseO1-DeepSeekR1-QwQ-SkyT1-32B-Preview
name: 'AionLabs: Aion-1.0-Mini'
type: chat
created: 1738697107
description: Aion-1.0-Mini 32B parameter model is a distilled version of the DeepSeek-R1 model, designed for strong performance in reasoning domains such as mathematics, coding, and logic. It is a modified variant of a FuseAI model that outperforms R1-Distill-Qwen-32B and R1-Distill-Llama-70B, with benchmark results available on its [Hugging Face page](https://huggingface.co/FuseAI/FuseO1-DeepSeekR1-QwQ-SkyT1-32B-Preview), independently replicated for verification.
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000007'
completion: '0.0000014'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
model_provider: aion-labs

View File

@@ -0,0 +1,34 @@
id: aion-labs/aion-1.0
canonical_slug: aion-labs/aion-1.0
hugging_face_id: ''
name: 'AionLabs: Aion-1.0'
type: chat
created: 1738697557
description: Aion-1.0 is a multi-model system designed for high performance across various tasks, including reasoning and coding. It is built on DeepSeek-R1, augmented with additional models and techniques such as Tree of Thoughts (ToT) and Mixture of Experts (MoE). It is Aion Lab's most powerful reasoning model.
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.000004'
completion: '0.000008'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
model_provider: aion-labs

View File

@@ -0,0 +1,32 @@
id: aion-labs/aion-rp-llama-3.1-8b
canonical_slug: aion-labs/aion-rp-llama-3.1-8b
hugging_face_id: ''
name: 'AionLabs: Aion-RP 1.0 (8B)'
type: chat
created: 1738696718
description: Aion-RP-Llama-3.1-8B ranks the highest in the character evaluation portion of the RPBench-Auto benchmark, a roleplaying-specific variant of Arena-Hard-Auto, where LLMs evaluate each others responses. It is a fine-tuned base model rather than an instruct model, designed to produce more natural and varied writing.
context_length: 32768
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000002'
completion: '0.0000002'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
model_provider: aion-labs

View File

@@ -0,0 +1,39 @@
id: alfredpros/codellama-7b-instruct-solidity
canonical_slug: alfredpros/codellama-7b-instruct-solidity
hugging_face_id: AlfredPros/CodeLlama-7b-Instruct-Solidity
name: 'AlfredPros: CodeLLaMa 7B Instruct Solidity'
type: chat
created: 1744641874
description: A finetuned 7 billion parameters Code LLaMA - Instruct model to generate Solidity smart contract using 4-bit QLoRA finetuning provided by PEFT library.
context_length: 4096
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: alpaca
pricing:
prompt: '0.0000008'
completion: '0.0000012'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- repetition_penalty
- top_k
- min_p
- seed
model_provider: alfredpros

View File

@@ -0,0 +1,44 @@
id: all-hands/openhands-lm-32b-v0.1
canonical_slug: all-hands/openhands-lm-32b-v0.1
hugging_face_id: all-hands/openhands-lm-32b-v0.1
name: OpenHands LM 32B V0.1
type: chat
created: 1743613013
description: |-
OpenHands LM v0.1 is a 32B open-source coding model fine-tuned from Qwen2.5-Coder-32B-Instruct using reinforcement learning techniques outlined in SWE-Gym. It is optimized for autonomous software development agents and achieves strong performance on SWE-Bench Verified, with a 37.2% resolve rate. The model supports a 128K token context window, making it well-suited for long-horizon code reasoning and large codebase tasks.
OpenHands LM is designed for local deployment and runs on consumer-grade GPUs such as a single 3090. It enables fully offline agent workflows without dependency on proprietary APIs. This release is intended as a research preview, and future updates aim to improve generalizability, reduce repetition, and offer smaller variants.
context_length: 16384
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000026'
completion: '0.0000034'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- repetition_penalty
- top_k
- min_p
- seed
model_provider: all-hands

View File

@@ -0,0 +1,48 @@
id: alpindale/goliath-120b
canonical_slug: alpindale/goliath-120b
hugging_face_id: alpindale/goliath-120b
name: Goliath 120B
type: chat
created: 1699574400
description: |-
A large LLM created by combining two fine-tuned Llama 70B models into one 120B model. Combines Xwin and Euryale.
Credits to
- [@chargoddard](https://huggingface.co/chargoddard) for developing the framework used to merge the model - [mergekit](https://github.com/cg123/mergekit).
- [@Undi95](https://huggingface.co/Undi95) for helping with the merge ratios.
#merge
context_length: 6144
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Llama2
instruct_type: airoboros
pricing:
prompt: '0.00001'
completion: '0.0000125'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- repetition_penalty
- logit_bias
- top_k
- min_p
- seed
- top_a
model_provider: alpindale

View File

@@ -0,0 +1,42 @@
id: alpindale/magnum-72b
canonical_slug: alpindale/magnum-72b
hugging_face_id: alpindale/magnum-72b-v1
name: Magnum 72B
type: chat
created: 1720656000
description: |-
From the maker of [Goliath](https://openrouter.ai/models/alpindale/goliath-120b), Magnum 72B is the first in a new family of models designed to achieve the prose quality of the Claude 3 models, notably Opus & Sonnet.
The model is based on [Qwen2 72B](https://openrouter.ai/models/qwen/qwen-2-72b-instruct) and trained with 55 million tokens of highly curated roleplay (RP) data.
context_length: 16384
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Qwen
instruct_type: chatml
pricing:
prompt: '0.000004'
completion: '0.000006'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- repetition_penalty
- top_k
- min_p
- seed
model_provider: alpindale

View File

@@ -0,0 +1,39 @@
id: amazon/nova-lite-v1
canonical_slug: amazon/nova-lite-v1
hugging_face_id: ''
name: 'Amazon: Nova Lite 1.0'
type: chat
created: 1733437363
description: |-
Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite can handle real-time customer interactions, document analysis, and visual question-answering tasks with high accuracy.
With an input context of 300K tokens, it can analyze multiple images or up to 30 minutes of video in a single input.
context_length: 300000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Nova
instruct_type: null
pricing:
prompt: '0.00000006'
completion: '0.00000024'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0.00009'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: amazon

View File

@@ -0,0 +1,35 @@
id: amazon/nova-micro-v1
canonical_slug: amazon/nova-micro-v1
hugging_face_id: ''
name: 'Amazon: Nova Micro 1.0'
type: chat
created: 1733437237
description: Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length of 128K tokens and optimized for speed and cost, Amazon Nova Micro excels at tasks such as text summarization, translation, content classification, interactive chat, and brainstorming. It has simple mathematical reasoning and coding abilities.
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Nova
instruct_type: null
pricing:
prompt: '0.000000035'
completion: '0.00000014'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: amazon

View File

@@ -0,0 +1,41 @@
id: amazon/nova-pro-v1
canonical_slug: amazon/nova-pro-v1
hugging_face_id: ''
name: 'Amazon: Nova Pro 1.0'
type: chat
created: 1733436303
description: |-
Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December 2024, it achieves state-of-the-art performance on key benchmarks including visual question answering (TextVQA) and video understanding (VATEX).
Amazon Nova Pro demonstrates strong capabilities in processing both visual and textual information and at analyzing financial documents.
**NOTE**: Video input is not supported at this time.
context_length: 300000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Nova
instruct_type: null
pricing:
prompt: '0.0000008'
completion: '0.0000032'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0.0012'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: amazon

View File

@@ -0,0 +1,43 @@
id: anthracite-org/magnum-v2-72b
canonical_slug: anthracite-org/magnum-v2-72b
hugging_face_id: anthracite-org/magnum-v2-72b
name: Magnum v2 72B
type: chat
created: 1727654400
description: |-
From the maker of [Goliath](https://openrouter.ai/models/alpindale/goliath-120b), Magnum 72B is the seventh in a family of models designed to achieve the prose quality of the Claude 3 models, notably Opus & Sonnet.
The model is based on [Qwen2 72B](https://openrouter.ai/models/qwen/qwen-2-72b-instruct) and trained with 55 million tokens of highly curated roleplay (RP) data.
context_length: 32768
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Qwen
instruct_type: chatml
pricing:
prompt: '0.000003'
completion: '0.000003'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- repetition_penalty
- logit_bias
- top_k
- min_p
- seed
model_provider: anthracite-org

View File

@@ -0,0 +1,44 @@
id: anthracite-org/magnum-v4-72b
canonical_slug: anthracite-org/magnum-v4-72b
hugging_face_id: anthracite-org/magnum-v4-72b
name: Magnum v4 72B
type: chat
created: 1729555200
description: |-
This is a series of models designed to replicate the prose quality of the Claude 3 models, specifically Sonnet(https://openrouter.ai/anthropic/claude-3.5-sonnet) and Opus(https://openrouter.ai/anthropic/claude-3-opus).
The model is fine-tuned on top of [Qwen2.5 72B](https://openrouter.ai/qwen/qwen-2.5-72b-instruct).
context_length: 16384
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Qwen
instruct_type: chatml
pricing:
prompt: '0.0000025'
completion: '0.000003'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- repetition_penalty
- top_k
- min_p
- seed
- logit_bias
- top_a
model_provider: anthracite-org

View File

@@ -0,0 +1,34 @@
id: anthropic/claude-2:beta
canonical_slug: anthropic/claude-2
hugging_face_id: ''
name: 'Anthropic: Claude v2 (self-moderated)'
type: chat
created: 1700611200
description: 'Claude 2 delivers advancements in key capabilities for enterprises—including an industry-leading 200K token context window, significant reductions in rates of model hallucination, system prompts and a new beta feature: tool use.'
context_length: 200000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000008'
completion: '0.000024'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,34 @@
id: anthropic/claude-2.0:beta
canonical_slug: anthropic/claude-2.0
hugging_face_id: ''
name: 'Anthropic: Claude v2.0 (self-moderated)'
type: chat
created: 1690502400
description: Anthropic's flagship model. Superior performance on tasks that require complex reasoning. Supports hundreds of pages of text.
context_length: 100000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000008'
completion: '0.000024'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,34 @@
id: anthropic/claude-2.0
canonical_slug: anthropic/claude-2.0
hugging_face_id: ''
name: 'Anthropic: Claude v2.0'
type: chat
created: 1690502400
description: Anthropic's flagship model. Superior performance on tasks that require complex reasoning. Supports hundreds of pages of text.
context_length: 100000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000008'
completion: '0.000024'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,34 @@
id: anthropic/claude-2.1:beta
canonical_slug: anthropic/claude-2.1
hugging_face_id: ''
name: 'Anthropic: Claude v2.1 (self-moderated)'
type: chat
created: 1700611200
description: 'Claude 2 delivers advancements in key capabilities for enterprises—including an industry-leading 200K token context window, significant reductions in rates of model hallucination, system prompts and a new beta feature: tool use.'
context_length: 200000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000008'
completion: '0.000024'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,34 @@
id: anthropic/claude-2.1
canonical_slug: anthropic/claude-2.1
hugging_face_id: ''
name: 'Anthropic: Claude v2.1'
type: chat
created: 1700611200
description: 'Claude 2 delivers advancements in key capabilities for enterprises—including an industry-leading 200K token context window, significant reductions in rates of model hallucination, system prompts and a new beta feature: tool use.'
context_length: 200000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000008'
completion: '0.000024'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,34 @@
id: anthropic/claude-2
canonical_slug: anthropic/claude-2
hugging_face_id: ''
name: 'Anthropic: Claude v2'
type: chat
created: 1700611200
description: 'Claude 2 delivers advancements in key capabilities for enterprises—including an industry-leading 200K token context window, significant reductions in rates of model hallucination, system prompts and a new beta feature: tool use.'
context_length: 200000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000008'
completion: '0.000024'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,43 @@
id: anthropic/claude-3-haiku:beta
canonical_slug: anthropic/claude-3-haiku
hugging_face_id: ''
name: 'Anthropic: Claude 3 Haiku (self-moderated)'
type: chat
created: 1710288000
description: |-
Claude 3 Haiku is Anthropic's fastest and most compact model for
near-instant responsiveness. Quick and accurate targeted performance.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.00000025'
completion: '0.00000125'
input_cache_read: '0.00000003'
input_cache_write: '0.0000003'
request: '0'
image: '0.0004'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,43 @@
id: anthropic/claude-3-haiku
canonical_slug: anthropic/claude-3-haiku
hugging_face_id: ''
name: 'Anthropic: Claude 3 Haiku'
type: chat
created: 1710288000
description: |-
Claude 3 Haiku is Anthropic's fastest and most compact model for
near-instant responsiveness. Quick and accurate targeted performance.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-haiku)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.00000025'
completion: '0.00000125'
input_cache_read: '0.00000003'
input_cache_write: '0.0000003'
request: '0'
image: '0.0004'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3-opus:beta
canonical_slug: anthropic/claude-3-opus
hugging_face_id: ''
name: 'Anthropic: Claude 3 Opus (self-moderated)'
type: chat
created: 1709596800
description: |-
Claude 3 Opus is Anthropic's most powerful model for highly complex tasks. It boasts top-level performance, intelligence, fluency, and understanding.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-family)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000015'
completion: '0.000075'
input_cache_read: '0.0000015'
input_cache_write: '0.00001875'
request: '0'
image: '0.024'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3-opus
canonical_slug: anthropic/claude-3-opus
hugging_face_id: ''
name: 'Anthropic: Claude 3 Opus'
type: chat
created: 1709596800
description: |-
Claude 3 Opus is Anthropic's most powerful model for highly complex tasks. It boasts top-level performance, intelligence, fluency, and understanding.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-family)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000015'
completion: '0.000075'
input_cache_read: '0.0000015'
input_cache_write: '0.00001875'
request: '0'
image: '0.024'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3-sonnet:beta
canonical_slug: anthropic/claude-3-sonnet
hugging_face_id: ''
name: 'Anthropic: Claude 3 Sonnet (self-moderated)'
type: chat
created: 1709596800
description: |-
Claude 3 Sonnet is an ideal balance of intelligence and speed for enterprise workloads. Maximum utility at a lower price, dependable, balanced for scaled deployments.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-family)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3-sonnet
canonical_slug: anthropic/claude-3-sonnet
hugging_face_id: ''
name: 'Anthropic: Claude 3 Sonnet'
type: chat
created: 1709596800
description: |-
Claude 3 Sonnet is an ideal balance of intelligence and speed for enterprise workloads. Maximum utility at a lower price, dependable, balanced for scaled deployments.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/claude-3-family)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3.5-haiku-20241022:beta
canonical_slug: anthropic/claude-3-5-haiku-20241022
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Haiku (2024-10-22) (self-moderated)'
type: chat
created: 1730678400
description: |-
Claude 3.5 Haiku features enhancements across all skill sets including coding, tool use, and reasoning. As the fastest model in the Anthropic lineup, it offers rapid response times suitable for applications that require high interactivity and low latency, such as user-facing chatbots and on-the-fly code completions. It also excels in specialized tasks like data extraction and real-time content moderation, making it a versatile tool for a broad range of industries.
It does not support image inputs.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/3-5-models-and-computer-use)
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.0000008'
completion: '0.000004'
input_cache_read: '0.00000008'
input_cache_write: '0.000001'
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3.5-haiku-20241022
canonical_slug: anthropic/claude-3-5-haiku-20241022
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Haiku (2024-10-22)'
type: chat
created: 1730678400
description: |-
Claude 3.5 Haiku features enhancements across all skill sets including coding, tool use, and reasoning. As the fastest model in the Anthropic lineup, it offers rapid response times suitable for applications that require high interactivity and low latency, such as user-facing chatbots and on-the-fly code completions. It also excels in specialized tasks like data extraction and real-time content moderation, making it a versatile tool for a broad range of industries.
It does not support image inputs.
See the launch announcement and benchmark results [here](https://www.anthropic.com/news/3-5-models-and-computer-use)
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.0000008'
completion: '0.000004'
input_cache_read: '0.00000008'
input_cache_write: '0.000001'
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3.5-haiku:beta
canonical_slug: anthropic/claude-3-5-haiku
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Haiku (self-moderated)'
type: chat
created: 1730678400
description: |-
Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic tasks such as chat interactions and immediate coding suggestions.
This makes it highly suitable for environments that demand both speed and precision, such as software development, customer service bots, and data management systems.
This model is currently pointing to [Claude 3.5 Haiku (2024-10-22)](/anthropic/claude-3-5-haiku-20241022).
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.0000008'
completion: '0.000004'
input_cache_read: '0.00000008'
input_cache_write: '0.000001'
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-3.5-haiku
canonical_slug: anthropic/claude-3-5-haiku
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Haiku'
type: chat
created: 1730678400
description: |-
Claude 3.5 Haiku features offers enhanced capabilities in speed, coding accuracy, and tool use. Engineered to excel in real-time applications, it delivers quick response times that are essential for dynamic tasks such as chat interactions and immediate coding suggestions.
This makes it highly suitable for environments that demand both speed and precision, such as software development, customer service bots, and data management systems.
This model is currently pointing to [Claude 3.5 Haiku (2024-10-22)](/anthropic/claude-3-5-haiku-20241022).
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.0000008'
completion: '0.000004'
input_cache_read: '0.00000008'
input_cache_write: '0.000001'
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,47 @@
id: anthropic/claude-3.5-sonnet-20240620:beta
canonical_slug: anthropic/claude-3.5-sonnet-20240620
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Sonnet (2024-06-20) (self-moderated)'
type: chat
created: 1718841600
description: |-
Claude 3.5 Sonnet delivers better-than-Opus capabilities, faster-than-Sonnet speeds, at the same Sonnet prices. Sonnet is particularly good at:
- Coding: Autonomously writes, edits, and runs code with reasoning and troubleshooting
- Data science: Augments human data science expertise; navigates unstructured data while using multiple tools for insights
- Visual processing: excelling at interpreting charts, graphs, and images, accurately transcribing text to derive insights beyond just the text alone
- Agentic tasks: exceptional tool use, making it great at agentic tasks (i.e. complex, multi-step problem solving tasks that require engaging with other systems)
For the latest version (2024-10-23), check out [Claude 3.5 Sonnet](/anthropic/claude-3.5-sonnet).
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,47 @@
id: anthropic/claude-3.5-sonnet-20240620
canonical_slug: anthropic/claude-3.5-sonnet-20240620
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Sonnet (2024-06-20)'
type: chat
created: 1718841600
description: |-
Claude 3.5 Sonnet delivers better-than-Opus capabilities, faster-than-Sonnet speeds, at the same Sonnet prices. Sonnet is particularly good at:
- Coding: Autonomously writes, edits, and runs code with reasoning and troubleshooting
- Data science: Augments human data science expertise; navigates unstructured data while using multiple tools for insights
- Visual processing: excelling at interpreting charts, graphs, and images, accurately transcribing text to derive insights beyond just the text alone
- Agentic tasks: exceptional tool use, making it great at agentic tasks (i.e. complex, multi-step problem solving tasks that require engaging with other systems)
For the latest version (2024-10-23), check out [Claude 3.5 Sonnet](/anthropic/claude-3.5-sonnet).
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,45 @@
id: anthropic/claude-3.5-sonnet:beta
canonical_slug: anthropic/claude-3.5-sonnet
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Sonnet (self-moderated)'
type: chat
created: 1729555200
description: |-
New Claude 3.5 Sonnet delivers better-than-Opus capabilities, faster-than-Sonnet speeds, at the same Sonnet prices. Sonnet is particularly good at:
- Coding: Scores ~49% on SWE-Bench Verified, higher than the last best score, and without any fancy prompt scaffolding
- Data science: Augments human data science expertise; navigates unstructured data while using multiple tools for insights
- Visual processing: excelling at interpreting charts, graphs, and images, accurately transcribing text to derive insights beyond just the text alone
- Agentic tasks: exceptional tool use, making it great at agentic tasks (i.e. complex, multi-step problem solving tasks that require engaging with other systems)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,45 @@
id: anthropic/claude-3.5-sonnet
canonical_slug: anthropic/claude-3.5-sonnet
hugging_face_id: ''
name: 'Anthropic: Claude 3.5 Sonnet'
type: chat
created: 1729555200
description: |-
New Claude 3.5 Sonnet delivers better-than-Opus capabilities, faster-than-Sonnet speeds, at the same Sonnet prices. Sonnet is particularly good at:
- Coding: Scores ~49% on SWE-Bench Verified, higher than the last best score, and without any fancy prompt scaffolding
- Data science: Augments human data science expertise; navigates unstructured data while using multiple tools for insights
- Visual processing: excelling at interpreting charts, graphs, and images, accurately transcribing text to derive insights beyond just the text alone
- Agentic tasks: exceptional tool use, making it great at agentic tasks (i.e. complex, multi-step problem solving tasks that require engaging with other systems)
#multimodal
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- top_k
- stop
model_provider: anthropic

View File

@@ -0,0 +1,37 @@
id: anthropic/claude-3.7-sonnet:beta
canonical_slug: anthropic/claude-3-7-sonnet-20250219
hugging_face_id: ''
name: 'Anthropic: Claude 3.7 Sonnet (self-moderated)'
type: chat
created: 1740422110
description: "Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and extended, step-by-step processing for complex tasks. The model demonstrates notable improvements in coding, particularly in front-end development and full-stack updates, and excels in agentic workflows, where it can autonomously navigate multi-step processes. \n\nClaude 3.7 Sonnet maintains performance parity with its predecessor in standard mode while offering an extended reasoning mode for enhanced accuracy in math, coding, and instruction-following tasks.\n\nRead more at the [blog post here](https://www.anthropic.com/news/claude-3-7-sonnet)"
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
model_provider: anthropic

View File

@@ -0,0 +1,37 @@
id: anthropic/claude-3.7-sonnet:thinking
canonical_slug: anthropic/claude-3-7-sonnet-20250219
hugging_face_id: ''
name: 'Anthropic: Claude 3.7 Sonnet (thinking)'
type: chat
created: 1740422110
description: "Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and extended, step-by-step processing for complex tasks. The model demonstrates notable improvements in coding, particularly in front-end development and full-stack updates, and excels in agentic workflows, where it can autonomously navigate multi-step processes. \n\nClaude 3.7 Sonnet maintains performance parity with its predecessor in standard mode while offering an extended reasoning mode for enhanced accuracy in math, coding, and instruction-following tasks.\n\nRead more at the [blog post here](https://www.anthropic.com/news/claude-3-7-sonnet)"
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
model_provider: anthropic

View File

@@ -0,0 +1,39 @@
id: anthropic/claude-3.7-sonnet
canonical_slug: anthropic/claude-3-7-sonnet-20250219
hugging_face_id: ''
name: 'Anthropic: Claude 3.7 Sonnet'
type: chat
created: 1740422110
description: "Claude 3.7 Sonnet is an advanced large language model with improved reasoning, coding, and problem-solving capabilities. It introduces a hybrid reasoning approach, allowing users to choose between rapid responses and extended, step-by-step processing for complex tasks. The model demonstrates notable improvements in coding, particularly in front-end development and full-stack updates, and excels in agentic workflows, where it can autonomously navigate multi-step processes. \n\nClaude 3.7 Sonnet maintains performance parity with its predecessor in standard mode while offering an extended reasoning mode for enhanced accuracy in math, coding, and instruction-following tasks.\n\nRead more at the [blog post here](https://www.anthropic.com/news/claude-3-7-sonnet)"
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
- top_p
- top_k
model_provider: anthropic

View File

@@ -0,0 +1,39 @@
id: anthropic/claude-opus-4
canonical_slug: anthropic/claude-4-opus-20250522
hugging_face_id: ''
name: 'Anthropic: Claude Opus 4'
type: chat
created: 1747931245
description: "Claude Opus 4 is benchmarked as the worlds best coding model, at time of release, bringing sustained performance on complex, long-running tasks and agent workflows. It sets new benchmarks in software engineering, achieving leading results on SWE-bench (72.5%) and Terminal-bench (43.2%). Opus 4 supports extended, agentic workflows, handling thousands of task steps continuously for hours without degradation. \n\nRead more at the [blog post here](https://www.anthropic.com/news/claude-4)"
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- image
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000015'
completion: '0.000075'
input_cache_read: '0.0000015'
input_cache_write: '0.00001875'
request: '0'
image: '0.024'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
- top_p
- top_k
model_provider: anthropic

View File

@@ -0,0 +1,42 @@
id: anthropic/claude-sonnet-4
canonical_slug: anthropic/claude-4-sonnet-20250522
hugging_face_id: ''
name: 'Anthropic: Claude Sonnet 4'
type: chat
created: 1747930371
description: |-
Claude Sonnet 4 significantly enhances the capabilities of its predecessor, Sonnet 3.7, excelling in both coding and reasoning tasks with improved precision and controllability. Achieving state-of-the-art performance on SWE-bench (72.7%), Sonnet 4 balances capability and computational efficiency, making it suitable for a broad range of applications from routine coding tasks to complex software development projects. Key enhancements include improved autonomous codebase navigation, reduced error rates in agent-driven workflows, and increased reliability in following intricate instructions. Sonnet 4 is optimized for practical everyday use, providing advanced reasoning capabilities while maintaining efficiency and responsiveness in diverse internal and external scenarios.
Read more at the [blog post here](https://www.anthropic.com/news/claude-4)
context_length: 200000
architecture:
modality: text+image->text
input_modalities:
- image
- text
output_modalities:
- text
tokenizer: Claude
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: '0.0000003'
input_cache_write: '0.00000375'
request: '0'
image: '0.0048'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
- top_p
- top_k
model_provider: anthropic

View File

@@ -0,0 +1,40 @@
id: arcee-ai/arcee-blitz
canonical_slug: arcee-ai/arcee-blitz
hugging_face_id: arcee-ai/arcee-blitz
name: 'Arcee AI: Arcee Blitz'
type: chat
created: 1746470100
description: 'Arcee Blitz is a 24Bparameter dense model distilled from DeepSeek and built on Mistral architecture for "everyday" chat. The distillationplusrefinement pipeline trims compute while keeping DeepSeekstyle reasoning, so Blitz punches above its weight on MMLU, GSM8K and BBH compared with other midsize open models. With a default 128k context window and competitive throughput, it serves as a costefficient workhorse for summarization, brainstorming and light code help. Internally, Arcee uses Blitz as the default writer in Conductor pipelines when the heavier Virtuoso line is not required. Users therefore get near70B quality at ~⅓ the latency and price. '
context_length: 32768
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.00000045'
completion: '0.00000075'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: arcee-ai

View File

@@ -0,0 +1,42 @@
id: arcee-ai/caller-large
canonical_slug: arcee-ai/caller-large
hugging_face_id: ''
name: 'Arcee AI: Caller Large'
type: chat
created: 1746487869
description: 'Caller Large is Arcee''s specialist "functioncalling" SLM built to orchestrate external tools and APIs. Instead of maximizing nexttoken accuracy, training focuses on structured JSON outputs, parameter extraction and multistep tool chains, making Caller a natural choice for retrievalaugmented generation, robotic process automation or datapull chatbots. It incorporates a routing head that decides when (and how) to invoke a tool versus answering directly, reducing hallucinated calls. The model is already the backbone of Arcee Conductor''s autotool mode, where it parses user intent, emits clean function signatures and hands control back once the tool response is ready. Developers thus gain an OpenAIstyle functioncalling UX without handing requests to a frontierscale model. '
context_length: 32768
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.00000055'
completion: '0.00000085'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: arcee-ai

View File

@@ -0,0 +1,40 @@
id: arcee-ai/coder-large
canonical_slug: arcee-ai/coder-large
hugging_face_id: ''
name: 'Arcee AI: Coder Large'
type: chat
created: 1746478663
description: 'CoderLarge is a 32Bparameter offspring of Qwen2.5Instruct that has been further trained on permissivelylicensed GitHub, CodeSearchNet and synthetic bugfix corpora. It supports a 32k context window, enabling multifile refactoring or long diff review in a single call, and understands 30plus programming languages with special attention to TypeScript, Go and Terraform. Internal benchmarks show 58pt gains over CodeLlama34BPython on HumanEval and competitive BugFix scores thanks to a reinforcement pass that rewards compilable output. The model emits structured explanations alongside code blocks by default, making it suitable for educational tooling as well as production copilot scenarios. Costwise, Together AI prices it well below proprietary incumbents, so teams can scale interactive coding without runaway spend. '
context_length: 32768
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000005'
completion: '0.0000008'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: arcee-ai

View File

@@ -0,0 +1,40 @@
id: arcee-ai/maestro-reasoning
canonical_slug: arcee-ai/maestro-reasoning
hugging_face_id: ''
name: 'Arcee AI: Maestro Reasoning'
type: chat
created: 1746481269
description: 'Maestro Reasoning is Arcee''s flagship analysis model: a 32Bparameter derivative of Qwen2.532B tuned with DPO and chainofthought RL for stepbystep logic. Compared to the earlier 7B preview, the production 32B release widens the context window to 128k tokens and doubles passrate on MATH and GSM8K, while also lifting code completion accuracy. Its instruction style encourages structured "thought → answer" traces that can be parsed or hidden according to user preference. That transparency pairs well with auditfocused industries like finance or healthcare where seeing the reasoning path matters. In Arcee Conductor, Maestro is automatically selected for complex, multiconstraint queries that smaller SLMs bounce. '
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000009'
completion: '0.0000033'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: arcee-ai

View File

@@ -0,0 +1,41 @@
id: arcee-ai/spotlight
canonical_slug: arcee-ai/spotlight
hugging_face_id: ''
name: 'Arcee AI: Spotlight'
type: chat
created: 1746481552
description: 'Spotlight is a 7billionparameter visionlanguage model derived from Qwen2.5VL and finetuned by Arcee AI for tight imagetext grounding tasks. It offers a 32ktoken context window, enabling rich multimodal conversations that combine lengthy documents with one or more images. Training emphasized fast inference on consumer GPUs while retaining strong captioning, visualquestionanswering, and diagramanalysis accuracy. As a result, Spotlight slots neatly into agent workflows where screenshots, charts or UI mockups need to be interpreted on the fly. Early benchmarks show it matching or outscoring larger VLMs such as LLaVA1.6 13B on popular VQA and POPE alignment tests. '
context_length: 131072
architecture:
modality: text+image->text
input_modalities:
- image
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.00000018'
completion: '0.00000018'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: arcee-ai

View File

@@ -0,0 +1,42 @@
id: arcee-ai/virtuoso-large
canonical_slug: arcee-ai/virtuoso-large
hugging_face_id: ''
name: 'Arcee AI: Virtuoso Large'
type: chat
created: 1746478885
description: VirtuosoLarge is Arcee's toptier generalpurpose LLM at 72B parameters, tuned to tackle crossdomain reasoning, creative writing and enterprise QA. Unlike many 70B peers, it retains the 128k context inherited from Qwen2.5, letting it ingest books, codebases or financial filings wholesale. Training blended DeepSeekR1 distillation, multiepoch supervised finetuning and a final DPO/RLHF alignment stage, yielding strong performance on BIGBenchHard, GSM8K and longcontext NeedleInHaystack tests. Enterprises use VirtuosoLarge as the "fallback" brain in Conductor pipelines when other SLMs flag low confidence. Despite its size, aggressive KVcache optimizations keep firsttoken latency in the lowsecond range on 8×H100 nodes, making it a practical productiongrade powerhouse.
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.00000075'
completion: '0.0000012'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: arcee-ai

View File

@@ -0,0 +1,42 @@
id: arcee-ai/virtuoso-medium-v2
canonical_slug: arcee-ai/virtuoso-medium-v2
hugging_face_id: arcee-ai/Virtuoso-Medium-v2
name: 'Arcee AI: Virtuoso Medium V2'
type: chat
created: 1746478434
description: 'VirtuosoMediumv2 is a 32B model distilled from DeepSeekv3 logits and merged back onto a Qwen2.5 backbone, yielding a sharper, more factual successor to the original Virtuoso Medium. The team harvested ~1.1B logit tokens and applied "fusionmerging" plus DPO alignment, which pushed scores past ArceeNova2024 and many 40Bplus peers on MMLUPro, MATH and HumanEval. With a 128k context and aggressive quantization options (from BF16 down to 4bit GGUF), it balances capability with deployability on singleGPU nodes. Typical use cases include enterprise chat assistants, technical writing aids and mediumcomplexity code drafting where VirtuosoLarge would be overkill. '
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000005'
completion: '0.0000008'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: arcee-ai

View File

@@ -0,0 +1,24 @@
id: bytedance/doubao-embedding-text-240715
canonical_slug: bytedance/doubao-embedding-text-240715
type: embedding
hugging_face_id: null
name: 'ByteDance: Doubao Embedding Text (240715)'
description: |-
Doubao Embedding Large 是字节跳动语义向量化模型的最新升级版,模型以豆包语言模型为基座,具备强大的语言理解能力;主要面向向量检索的使用场景,支持中、英双语。
context_length: 4000
dimensions:
- 512
- 1024
- 2048
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Doubao
pricing:
prompt: '0.7'
unit: 1000000
currency: CNY
model_provider: bytedance

View File

@@ -0,0 +1,25 @@
id: bytedance/doubao-embedding-large-text-240915
canonical_slug: bytedance/doubao-embedding-large-text-240915
type: embedding
hugging_face_id: null
name: 'ByteDance: Doubao Embedding Large Text (240915)'
description: |-
Doubao Embedding Large 是字节跳动语义向量化模型的最新升级版,模型以豆包语言模型为基座,具备强大的语言理解能力;主要面向向量检索的使用场景,支持中、英双语。
context_length: 4000
dimensions:
- 512
- 1024
- 2048
- 4096
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Doubao
pricing:
prompt: '0.7'
unit: 1000000
currency: CNY
model_provider: bytedance

View File

@@ -0,0 +1,24 @@
id: bytedance/doubao-embedding-text-240715
canonical_slug: bytedance/doubao-embedding-text-240715
type: embedding
hugging_face_id: null
name: 'ByteDance: Doubao Embedding'
description: |-
由字节跳动研发的语义向量化模型,主要面向向量检索的使用场景,支持中、英双语,最长 4K 上下文长度。向量维度 2048 维,支持 512、1024 降维使用。
context_length: 4000
dimensions:
- 512
- 1024
- 2048
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Doubao
pricing:
prompt: '0.5'
unit: 1000000
currency: CNY
model_provider: bytedance

View File

@@ -0,0 +1,25 @@
id: bytedance/doubao-embedding-text-240715
canonical_slug: bytedance/doubao-embedding-text-240715
type: embedding
hugging_face_id: null
name: 'ByteDance: Doubao Embedding'
description: |-
由字节跳动研发的语义向量化模型,主要面向向量检索的使用场景,支持中、英双语,最长 4K 上下文长度。向量维度 2048 维,支持 512、1024 降维使用。
context_length: 4000
dimensions:
- 512
- 1024
- 2048
- 2560
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Doubao
pricing:
prompt: '0.5'
unit: 1000000
currency: CNY
model_provider: bytedance

View File

@@ -0,0 +1,24 @@
id: bytedance/doubao-embedding-vision-241215
canonical_slug: bytedance/doubao-embedding-vision-241215
type: embedding
hugging_face_id: null
name: 'ByteDance: Doubao Embedding Vision'
description: |-
Doubao-embedding-vision全新升级图文多模态向量化模型主要面向图文多模向量检索的使用场景支持图片输入及中、英双语文本输入最长 8K 上下文长度。
context_length: 8000
dimensions:
- 3072
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Doubao
pricing:
prompt: '0.7'
prompt_image: '1.8'
unit: 1000000
currency: CNY
model_provider: bytedance

View File

@@ -0,0 +1,25 @@
id: bytedance/doubao-embedding-vision-250328
canonical_slug: bytedance/doubao-embedding-vision-250328
type: embedding
hugging_face_id: null
name: 'ByteDance: Doubao Embedding Vision'
description: |-
Doubao-embedding-vision全新升级图文多模态向量化模型主要面向图文多模向量检索的使用场景支持图片输入及中、英双语文本输入最长 8K 上下文长度。
context_length: 8000
dimensions:
- 1024
- 2048
architecture:
modality: text+image->text
input_modalities:
- text
- image
output_modalities:
- text
tokenizer: Doubao
pricing:
prompt: '0.7'
prompt_image: '1.8'
unit: 1000000
currency: CNY
model_provider: bytedance

View File

@@ -0,0 +1,41 @@
id: bytedance/doubao-seed-1.6-flash
canonical_slug: bytedance/doubao-seed-1.6-flash
type: chat
hugging_face_id: ''
name: 'ByteDance: Doubao Seed 1.6 Flash'
created: 1738402289
description: 有极致推理速度的多模态深度思考模型;同时支持文本和视觉理解。文本理解能力超过上一代 Lite 系列模型,视觉理解比肩友商 Pro 系列模型。
context_length: 256000
architecture:
modality: text+image+vedio->text
input_modalities:
- text
- image
- video
output_modalities:
- text
tokenizer: Doubao
instruct_type: null
pricing:
prompt: '0.15'
completion: '1.5'
input_cache_read: '0.03'
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
currency: CNY
unit: 1000000
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
- top_p
- top_k
- structured_outputs
model_provider: bytedance

View File

@@ -0,0 +1,41 @@
id: bytedance/doubao-seed-1.6-thinking
canonical_slug: bytedance/doubao-seed-1.6-thinking
type: chat
hugging_face_id: ''
name: 'ByteDance: Doubao Seed 1.6 Thinking'
created: 1738402289
description: 在思考能力上进行了大幅强化, 对比 doubao 1.5 代深度理解模型,在编程、数学、逻辑推理等基础能力上进一步提升, 支持视觉理解。
context_length: 256000
architecture:
modality: text+image+vedio->text
input_modalities:
- text
- image
- video
output_modalities:
- text
tokenizer: Doubao
instruct_type: null
pricing:
prompt: '0.8'
completion: '8.0'
input_cache_read: '0.16'
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
currency: CNY
unit: 1000000
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
- top_p
- top_k
- structured_outputs
model_provider: bytedance

View File

@@ -0,0 +1,41 @@
id: bytedance/doubao-seed-1.6
canonical_slug: bytedance/doubao-seed-1.6
type: chat
hugging_face_id: ''
name: 'ByteDance: Doubao Seed 1.6'
created: 1738402289
description: 全新多模态深度思考模型,同时支持 thinking、non-thinking、auto三种思考模式。其中 non-thinking 模型对比 doubao-1.5-pro-32k-250115 模型大幅提升。
context_length: 256000
architecture:
modality: text+image+vedio->text
input_modalities:
- text
- image
- video
output_modalities:
- text
tokenizer: Doubao
instruct_type: null
pricing:
prompt: '0.8'
completion: '8.0'
input_cache_read: '0.16'
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
currency: CNY
unit: 1000000
supported_parameters:
- max_tokens
- temperature
- stop
- reasoning
- include_reasoning
- tools
- tool_choice
- top_p
- top_k
- structured_outputs
model_provider: bytedance

View File

@@ -0,0 +1,47 @@
id: cognitivecomputations/dolphin-mixtral-8x22b
canonical_slug: cognitivecomputations/dolphin-mixtral-8x22b
hugging_face_id: cognitivecomputations/dolphin-2.9.2-mixtral-8x22b
name: "Dolphin 2.9.2 Mixtral 8x22B \U0001F42C"
type: chat
created: 1717804800
description: |-
Dolphin 2.9 is designed for instruction following, conversational, and coding. This model is a finetune of [Mixtral 8x22B Instruct](/models/mistralai/mixtral-8x22b-instruct). It features a 64k context length and was fine-tuned with a 16k sequence length using ChatML templates.
This model is a successor to [Dolphin Mixtral 8x7B](/models/cognitivecomputations/dolphin-mixtral-8x7b).
The model is uncensored and is stripped of alignment and bias. It requires an external alignment layer for ethical use. Users are cautioned to use this highly compliant model responsibly, as detailed in a blog post about uncensored models at [erichartford.com/uncensored-models](https://erichartford.com/uncensored-models).
#moe #uncensored
context_length: 16000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Mistral
instruct_type: chatml
pricing:
prompt: '0.0000009'
completion: '0.0000009'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- seed
- top_k
- min_p
- repetition_penalty
- logit_bias
model_provider: cognitivecomputations

View File

@@ -0,0 +1,41 @@
id: cohere/command-a
canonical_slug: cohere/command-a-03-2025
hugging_face_id: CohereForAI/c4ai-command-a-03-2025
name: 'Cohere: Command A'
type: chat
created: 1741894342
description: |-
Command A is an open-weights 111B parameter model with a 256k context window focused on delivering great performance across agentic, multilingual, and coding use cases.
Compared to other leading proprietary and open-weights models Command A delivers maximum performance with minimum hardware costs, excelling on business-critical agentic and multilingual tasks.
context_length: 256000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: null
pricing:
prompt: '0.0000025'
completion: '0.00001'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,45 @@
id: cohere/command-r-03-2024
canonical_slug: cohere/command-r-03-2024
hugging_face_id: ''
name: 'Cohere: Command R (03-2024)'
type: chat
created: 1709341200
description: |-
Command-R is a 35B parameter model that performs conversational language tasks at a higher quality, more reliably, and with a longer context than previous models. It can be used for complex workflows like code generation, retrieval augmented generation (RAG), tool use, and agents.
Read the launch post [here](https://txt.cohere.com/command-r/).
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.0000005'
completion: '0.0000015'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,45 @@
id: cohere/command-r-08-2024
canonical_slug: cohere/command-r-08-2024
hugging_face_id: ''
name: 'Cohere: Command R (08-2024)'
type: chat
created: 1724976000
description: |-
command-r-08-2024 is an update of the [Command R](/models/cohere/command-r) with improved performance for multilingual retrieval-augmented generation (RAG) and tool use. More broadly, it is better at math, code and reasoning and is competitive with the previous version of the larger Command R+ model.
Read the launch post [here](https://docs.cohere.com/changelog/command-gets-refreshed).
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.00000015'
completion: '0.0000006'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,45 @@
id: cohere/command-r-plus-04-2024
canonical_slug: cohere/command-r-plus-04-2024
hugging_face_id: ''
name: 'Cohere: Command R+ (04-2024)'
type: chat
created: 1712016000
description: |-
Command R+ is a new, 104B-parameter LLM from Cohere. It's useful for roleplay, general consumer usecases, and Retrieval Augmented Generation (RAG).
It offers multilingual support for ten key languages to facilitate global business operations. See benchmarks and the launch post [here](https://txt.cohere.com/command-r-plus-microsoft-azure/).
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,45 @@
id: cohere/command-r-plus-08-2024
canonical_slug: cohere/command-r-plus-08-2024
hugging_face_id: ''
name: 'Cohere: Command R+ (08-2024)'
type: chat
created: 1724976000
description: |-
command-r-plus-08-2024 is an update of the [Command R+](/models/cohere/command-r-plus) with roughly 50% higher throughput and 25% lower latencies as compared to the previous Command R+ version, while keeping the hardware footprint the same.
Read the launch post [here](https://docs.cohere.com/changelog/command-gets-refreshed).
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.0000025'
completion: '0.00001'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,45 @@
id: cohere/command-r-plus
canonical_slug: cohere/command-r-plus
hugging_face_id: ''
name: 'Cohere: Command R+'
type: chat
created: 1712188800
description: |-
Command R+ is a new, 104B-parameter LLM from Cohere. It's useful for roleplay, general consumer usecases, and Retrieval Augmented Generation (RAG).
It offers multilingual support for ten key languages to facilitate global business operations. See benchmarks and the launch post [here](https://txt.cohere.com/command-r-plus-microsoft-azure/).
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.000003'
completion: '0.000015'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,45 @@
id: cohere/command-r
canonical_slug: cohere/command-r
hugging_face_id: ''
name: 'Cohere: Command R'
type: chat
created: 1710374400
description: |-
Command-R is a 35B parameter model that performs conversational language tasks at a higher quality, more reliably, and with a longer context than previous models. It can be used for complex workflows like code generation, retrieval augmented generation (RAG), tool use, and agents.
Read the launch post [here](https://txt.cohere.com/command-r/).
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.0000005'
completion: '0.0000015'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,42 @@
id: cohere/command-r7b-12-2024
canonical_slug: cohere/command-r7b-12-2024
hugging_face_id: ''
name: 'Cohere: Command R7B (12-2024)'
type: chat
created: 1734158152
description: |-
Command R7B (12-2024) is a small, fast update of the Command R+ model, delivered in December 2024. It excels at RAG, tool use, agents, and similar tasks requiring complex reasoning and multiple steps.
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.0000000375'
completion: '0.00000015'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,42 @@
id: cohere/command
canonical_slug: cohere/command
hugging_face_id: ''
name: 'Cohere: Command'
type: chat
created: 1710374400
description: |-
Command is an instruction-following conversational model that performs language tasks with high quality, more reliably and with a longer context than our base generative models.
Use of this model is subject to Cohere's [Usage Policy](https://docs.cohere.com/docs/usage-policy) and [SaaS Agreement](https://cohere.com/saas-agreement).
context_length: 4096
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Cohere
instruct_type: null
pricing:
prompt: '0.000001'
completion: '0.000002'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- top_k
- seed
- response_format
- structured_outputs
model_provider: cohere

View File

@@ -0,0 +1,49 @@
id: deepseek/deepseek-chat-v3-0324
canonical_slug: deepseek/deepseek-chat-v3-0324
hugging_face_id: deepseek-ai/DeepSeek-V3-0324
name: 'DeepSeek: DeepSeek V3 0324'
type: chat
created: 1742824755
description: |-
DeepSeek V3, a 685B-parameter, mixture-of-experts model, is the latest iteration of the flagship chat model family from the DeepSeek team.
It succeeds the [DeepSeek V3](/deepseek/deepseek-chat-v3) model and performs really well on a variety of tasks.
context_length: 163840
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: DeepSeek
instruct_type: null
pricing:
prompt: '0.0000003'
completion: '0.00000088'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- structured_outputs
- response_format
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- logprobs
- top_logprobs
- seed
- min_p
model_provider: deepseek

View File

@@ -0,0 +1,49 @@
id: deepseek/deepseek-chat
canonical_slug: deepseek/deepseek-chat-v3
hugging_face_id: deepseek-ai/DeepSeek-V3
name: 'DeepSeek: DeepSeek V3'
type: chat
created: 1735241320
description: |-
DeepSeek-V3 is the latest model from the DeepSeek team, building upon the instruction following and coding abilities of the previous versions. Pre-trained on nearly 15 trillion tokens, the reported evaluations reveal that the model outperforms other open-source models and rivals leading closed-source models.
For model details, please visit [the DeepSeek-V3 repo](https://github.com/deepseek-ai/DeepSeek-V3) for more information, or see the [launch announcement](https://api-docs.deepseek.com/news/news1226).
context_length: 163840
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: DeepSeek
instruct_type: null
pricing:
prompt: '0.00000038'
completion: '0.00000089'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- tools
- tool_choice
- max_tokens
- temperature
- top_p
- structured_outputs
- response_format
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- logprobs
- top_logprobs
- seed
- min_p
model_provider: deepseek

View File

@@ -0,0 +1,41 @@
id: deepseek/deepseek-prover-v2
canonical_slug: deepseek/deepseek-prover-v2
hugging_face_id: deepseek-ai/DeepSeek-Prover-V2-671B
name: 'DeepSeek: DeepSeek Prover V2'
type: chat
created: 1746013094
description: DeepSeek Prover V2 is a 671B parameter model, speculated to be geared towards logic and mathematics. Likely an upgrade from [DeepSeek-Prover-V1.5](https://huggingface.co/deepseek-ai/DeepSeek-Prover-V1.5-RL) Not much is known about the model yet, as DeepSeek released it on Hugging Face without an announcement or description.
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: DeepSeek
instruct_type: null
pricing:
prompt: '0.0000005'
completion: '0.00000218'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- stop
- frequency_penalty
- presence_penalty
- seed
- top_k
- min_p
- repetition_penalty
- logit_bias
- response_format
model_provider: deepseek

View File

@@ -0,0 +1,45 @@
id: deepseek/deepseek-r1-0528-qwen3-8b
canonical_slug: deepseek/deepseek-r1-0528-qwen3-8b
hugging_face_id: deepseek-ai/deepseek-r1-0528-qwen3-8b
name: 'DeepSeek: Deepseek R1 0528 Qwen3 8B'
type: chat
created: 1748538543
description: |-
DeepSeek-R1-0528 is a lightly upgraded release of DeepSeek R1 that taps more compute and smarter post-training tricks, pushing its reasoning and inference to the brink of flagship models like O3 and Gemini 2.5 Pro.
It now tops math, programming, and logic leaderboards, showcasing a step-change in depth-of-thought.
The distilled variant, DeepSeek-R1-0528-Qwen3-8B, transfers this chain-of-thought into an 8 B-parameter form, beating standard Qwen3 8B by +10 pp and tying the 235 B “thinking” giant on AIME 2024.
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Qwen
instruct_type: deepseek-r1
pricing:
prompt: '0.00000005'
completion: '0.0000001'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
- presence_penalty
- frequency_penalty
- repetition_penalty
- top_k
- stop
- seed
- min_p
- logit_bias
model_provider: deepseek

View File

@@ -0,0 +1,51 @@
id: deepseek/deepseek-r1-0528
canonical_slug: deepseek/deepseek-r1-0528
hugging_face_id: deepseek-ai/DeepSeek-R1-0528
name: 'DeepSeek: R1 0528'
type: chat
created: 1748455170
description: |-
May 28th update to the [original DeepSeek R1](/deepseek/deepseek-r1) Performance on par with [OpenAI o1](/openai/o1), but open-sourced and with fully open reasoning tokens. It's 671B parameters in size, with 37B active in an inference pass.
Fully open-source model.
context_length: 128000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: DeepSeek
instruct_type: deepseek-r1
pricing:
prompt: '0.0000005'
completion: '0.00000215'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
- logprobs
- top_logprobs
- tools
- tool_choice
- seed
- structured_outputs
model_provider: deepseek

View File

@@ -0,0 +1,55 @@
id: deepseek/deepseek-r1-distill-llama-70b
canonical_slug: deepseek/deepseek-r1-distill-llama-70b
hugging_face_id: deepseek-ai/DeepSeek-R1-Distill-Llama-70B
name: 'DeepSeek: R1 Distill Llama 70B'
type: chat
created: 1737663169
description: |-
DeepSeek R1 Distill Llama 70B is a distilled large language model based on [Llama-3.3-70B-Instruct](/meta-llama/llama-3.3-70b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across multiple benchmarks, including:
- AIME 2024 pass@1: 70.0
- MATH-500 pass@1: 94.5
- CodeForces Rating: 1633
The model leverages fine-tuning from DeepSeek R1's outputs, enabling competitive performance comparable to larger frontier models.
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Llama3
instruct_type: deepseek-r1
pricing:
prompt: '0.0000001'
completion: '0.0000004'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
- seed
- top_k
- stop
- frequency_penalty
- presence_penalty
- logit_bias
- logprobs
- top_logprobs
- min_p
- repetition_penalty
- tools
- tool_choice
- response_format
- structured_outputs
model_provider: deepseek

View File

@@ -0,0 +1,42 @@
id: deepseek/deepseek-r1-distill-llama-8b
canonical_slug: deepseek/deepseek-r1-distill-llama-8b
hugging_face_id: deepseek-ai/DeepSeek-R1-Distill-Llama-8B
name: 'DeepSeek: R1 Distill Llama 8B'
type: chat
created: 1738937718
description: "DeepSeek R1 Distill Llama 8B is a distilled large language model based on [Llama-3.1-8B-Instruct](/meta-llama/llama-3.1-8b-instruct), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). The model combines advanced distillation techniques to achieve high performance across multiple benchmarks, including:\n\n- AIME 2024 pass@1: 50.4\n- MATH-500 pass@1: 89.1\n- CodeForces Rating: 1205\n\nThe model leverages fine-tuning from DeepSeek R1's outputs, enabling competitive performance comparable to larger frontier models.\n\nHugging Face: \n- [Llama-3.1-8B](https://huggingface.co/meta-llama/Llama-3.1-8B) \n- [DeepSeek-R1-Distill-Llama-8B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Llama-8B) |"
context_length: 32000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Llama3
instruct_type: deepseek-r1
pricing:
prompt: '0.00000004'
completion: '0.00000004'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
- stop
- frequency_penalty
- presence_penalty
- seed
- top_k
- min_p
- repetition_penalty
- logit_bias
model_provider: deepseek

View File

@@ -0,0 +1,51 @@
id: deepseek/deepseek-r1-distill-qwen-1.5b
canonical_slug: deepseek/deepseek-r1-distill-qwen-1.5b
hugging_face_id: deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B
name: 'DeepSeek: R1 Distill Qwen 1.5B'
type: chat
created: 1738328067
description: |-
DeepSeek R1 Distill Qwen 1.5B is a distilled large language model based on [Qwen 2.5 Math 1.5B](https://huggingface.co/Qwen/Qwen2.5-Math-1.5B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It's a very small and efficient model which outperforms [GPT 4o 0513](/openai/gpt-4o-2024-05-13) on Math Benchmarks.
Other benchmark results include:
- AIME 2024 pass@1: 28.9
- AIME 2024 cons@64: 52.7
- MATH-500 pass@1: 83.9
The model leverages fine-tuning from DeepSeek R1's outputs, enabling competitive performance comparable to larger frontier models.
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Other
instruct_type: deepseek-r1
pricing:
prompt: '0.00000018'
completion: '0.00000018'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
- stop
- frequency_penalty
- presence_penalty
- top_k
- repetition_penalty
- logit_bias
- min_p
- response_format
model_provider: deepseek

View File

@@ -0,0 +1,52 @@
id: deepseek/deepseek-r1-distill-qwen-14b
canonical_slug: deepseek/deepseek-r1-distill-qwen-14b
hugging_face_id: deepseek-ai/DeepSeek-R1-Distill-Qwen-14B
name: 'DeepSeek: R1 Distill Qwen 14B'
type: chat
created: 1738193940
description: |-
DeepSeek R1 Distill Qwen 14B is a distilled large language model based on [Qwen 2.5 14B](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI's o1-mini across various benchmarks, achieving new state-of-the-art results for dense models.
Other benchmark results include:
- AIME 2024 pass@1: 69.7
- MATH-500 pass@1: 93.9
- CodeForces Rating: 1481
The model leverages fine-tuning from DeepSeek R1's outputs, enabling competitive performance comparable to larger frontier models.
context_length: 64000
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Qwen
instruct_type: deepseek-r1
pricing:
prompt: '0.00000015'
completion: '0.00000015'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
- seed
- stop
- frequency_penalty
- presence_penalty
- top_k
- min_p
- repetition_penalty
- logit_bias
- response_format
model_provider: deepseek

View File

@@ -0,0 +1,43 @@
id: deepseek/deepseek-r1-distill-qwen-32b
canonical_slug: deepseek/deepseek-r1-distill-qwen-32b
hugging_face_id: deepseek-ai/DeepSeek-R1-Distill-Qwen-32B
name: 'DeepSeek: R1 Distill Qwen 32B'
type: chat
created: 1738194830
description: 'DeepSeek R1 Distill Qwen 32B is a distilled large language model based on [Qwen 2.5 32B](https://huggingface.co/Qwen/Qwen2.5-32B), using outputs from [DeepSeek R1](/deepseek/deepseek-r1). It outperforms OpenAI''s o1-mini across various benchmarks, achieving new state-of-the-art results for dense models.\n\nOther benchmark results include:\n\n- AIME 2024 pass@1: 72.6\n- MATH-500 pass@1: 94.3\n- CodeForces Rating: 1691\n\nThe model leverages fine-tuning from DeepSeek R1''s outputs, enabling competitive performance comparable to larger frontier models.'
context_length: 131072
architecture:
modality: text->text
input_modalities:
- text
output_modalities:
- text
tokenizer: Qwen
instruct_type: deepseek-r1
pricing:
prompt: '0.00000012'
completion: '0.00000018'
input_cache_read: ''
input_cache_write: ''
request: '0'
image: '0'
web_search: '0'
internal_reasoning: '0'
unit: 1
currency: USD
supported_parameters:
- max_tokens
- temperature
- top_p
- reasoning
- include_reasoning
- seed
- stop
- frequency_penalty
- presence_penalty
- top_k
- min_p
- repetition_penalty
- logit_bias
- response_format
model_provider: deepseek

Some files were not shown because too many files have changed in this diff Show More