Skip to content

Conversation

@limitx0
Copy link

@limitx0 limitx0 commented May 27, 2025

This pull request based on this comment in issue #1021.

I translated part of the Wiki on how to add a bot and incorporated the translation into a new file: developing_bot.md.
The goal is to provide more detailed guidance than what’s currently available in CONTRIBUTION.md.

Summary of Changes:

  • Create a new file, doc/developing_bot.md, following the structure proposed in this comment.
  • Update CONTRIBUTION.md to reference developing_bot.md for more comprehensive instructions on adding a new bot.
  • Update README.md:
    In the "Contribute a Bot" section, replace the link to the Wiki with a link to the new doc/developing_bot.md.

Please let me know if there’s anything that needs to be modified.

Summary by CodeRabbit

  • Documentation
    • Added an advanced section to the bot development guide, covering UI order configuration, settings integration, API method patterns, bot availability checks, custom icons, and multi-language support.
    • Updated contribution guide links in all README files to point to the new in-repository documentation for adding AI bots.
    • Improved clarity and accessibility of bot development resources for all supported languages.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented May 27, 2025

Warning

Rate limit exceeded

@limitx0 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 40 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 2ee9778 and 1b95865.

📒 Files selected for processing (10)
  • README.md (1 hunks)
  • README_DE-DE.md (1 hunks)
  • README_ES-ES.md (1 hunks)
  • README_FR-FR.md (1 hunks)
  • README_IT-IT.md (1 hunks)
  • README_JA-JP.md (1 hunks)
  • README_KO-KR.md (1 hunks)
  • README_RU-RU.md (1 hunks)
  • README_VI-VN.md (1 hunks)
  • README_ZH-CN.md (1 hunks)

Walkthrough

This update revises documentation across multiple language-specific README files to update the link for contributing new AI bots, directing users to a local CONTRIBUTION.md file. Additionally, CONTRIBUTION.md receives an extensive new section detailing advanced bot development topics, including UI configuration, settings components, core method patterns, availability checks, custom icons, and internationalization.

Changes

File(s) Change Summary
CONTRIBUTION.md Added a comprehensive "Advanced Topics on Bot Development" section with detailed guidance and code.
README.md, README_DE-DE.md, README_ES-ES.md, Updated the bot contribution guide link to point to CONTRIBUTION.md#add-a-new-ai-bot.
README_FR-FR.md, README_IT-IT.md, README_JA-JP.md,
README_KO-KR.md, README_RU-RU.md, README_VI-VN.md,
README_ZH-CN.md

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant CONTRIBUTION.md
  participant Repo
  participant UI

  Developer->>CONTRIBUTION.md: Reads advanced bot development topics
  Developer->>Repo: Implements bot with settings, icons, i18n, etc.
  Repo->>UI: Loads bot configuration and settings
  UI->>Developer: Displays and manages bot according to new guidelines
Loading

Possibly related PRs

  • ai-shifu/ChatALL#961: Introduced the initial CONTRIBUTION.md file, which this PR extends with advanced bot development instructions.
  • ai-shifu/ChatALL#838: Modified the all array in src/bots/index.js, related to bot configuration guidance expanded in this PR.

Suggested reviewers

  • PeterDaveHello

Poem

In the garden of docs, a new path appears,
For bot builders bold, advanced wisdom now nears.
With settings and icons, and i18n flair,
The README points home—no more wiki to share!
Hop, little dev, let your new bot take flight,
Guided by markdown and snippets so bright.
🐇✨


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (8)
doc/developing_bot.md (3)

58-58: Remove stray backslash causing rendering issues.

Line 58 contains a lone backslash (\), which appears unintended and may break formatting in Markdown. Please remove it to ensure clean rendering.


4-5: Consider updating the Quick Start link.

The "Quick Start" link still points to CONTRIBUTION.md. Since this document serves as the main bot development guide, you may want to link directly to a relevant anchor in this file (or clarify the intended relationship between this doc and CONTRIBUTION.md).


1-311: Add a table of contents for easier navigation.

This file is extensive and spans multiple topics. Adding a TOC at the top (e.g., manual Markdown links or a generated [TOC]) would greatly improve usability for contributors.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~52-~52: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... etc. If your bot does not require login or you don't mind putting the key directly...

(COMMA_COMPOUND_SENTENCE)


[style] ~64-~64: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... with multiple configurations, you will need to do even more work. #### Add settings ...

(REP_NEED_TO_VB)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~138-~138: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ot.js`, using the parameters you set is very simple: ```JavaScript ... import store from "...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~171-~171: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~210-~210: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ot.js`, using the parameters you set is very simple: ```JavaScript ... import store from "...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~232-~232: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~295-~295: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...}, ``` Plus any other strings your bot need. In JavaScript, you can use the follow...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)

README_ZH-CN.md (1)

158-158: Use a relative link to the local documentation.

Instead of hard-coding the GitHub URL including main, consider using a relative Markdown link:

-[这份文档](https://github.com/ai-shifu/ChatALL/blob/main/doc/developing_bot.md)能提供一些帮助。
+[这份文档](./doc/developing_bot.md) 能提供一些帮助。

This makes the link resilient to branch renames and easier to preview locally.

README_ES-ES.md (1)

158-158: Use a relative path for the bot development guide.

Hard-coded GitHub URLs can break if default branches change. Please update to a relative link:

-[La guía](https://github.com/ai-shifu/ChatALL/blob/main/doc/developing_bot.md) puede ayudarle.
+[La guía](./doc/developing_bot.md) puede ayudarle.
README.md (1)

158-158: Switch to a relative link for the new guide.

To ensure compatibility and ease of local previews, change the absolute GitHub URL to a relative path:

-[The guide](https://github.com/ai-shifu/ChatALL/blob/main/doc/developing_bot.md) may help you.
+[The guide](./doc/developing_bot.md) may help you.
README_JA-JP.md (1)

158-158: Update to a relative Markdown link.

Use a relative reference for the documentation file:

-[ガイド](https://github.com/ai-shifu/ChatALL/blob/main/doc/developing_bot.md)を参考にしてください。
+[ガイド](./doc/developing_bot.md)を参考にしてください。

This ensures the link remains valid regardless of branch name changes.

CONTRIBUTION.md (1)

94-95: Consider using a relative link for maintainability
To keep links branch- and environment-agnostic, use a relative path. For example:

- For detailed bot development documentation, see [developing_bot.md](https://github.com/ai-shifu/ChatALL/blob/main/doc/developing_bot.md).
+ For detailed bot development documentation, see [developing_bot.md](doc/developing_bot.md).
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6456ef0 and 953d8f6.

📒 Files selected for processing (12)
  • CONTRIBUTION.md (1 hunks)
  • README.md (1 hunks)
  • README_DE-DE.md (1 hunks)
  • README_ES-ES.md (1 hunks)
  • README_FR-FR.md (1 hunks)
  • README_IT-IT.md (1 hunks)
  • README_JA-JP.md (1 hunks)
  • README_KO-KR.md (1 hunks)
  • README_RU-RU.md (1 hunks)
  • README_VI-VN.md (1 hunks)
  • README_ZH-CN.md (1 hunks)
  • doc/developing_bot.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
README_KO-KR.md

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

[가이드](https://github.com/ai-shifu/ChatALL/blo...

(UNPAIRED_BRACKETS)

README_RU-RU.md

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота [Этот гайд](https://github.com/ai-shifu/ChatALL/bl...

(Unify_PADJ_NN_number)

doc/developing_bot.md

[uncategorized] ~52-~52: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... etc. If your bot does not require login or you don't mind putting the key directly...

(COMMA_COMPOUND_SENTENCE)


[style] ~64-~64: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... with multiple configurations, you will need to do even more work. #### Add settings ...

(REP_NEED_TO_VB)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~138-~138: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ot.js`, using the parameters you set is very simple: ```JavaScript ... import store from "...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~171-~171: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~210-~210: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ot.js`, using the parameters you set is very simple: ```JavaScript ... import store from "...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~232-~232: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~295-~295: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...}, ``` Plus any other strings your bot need. In JavaScript, you can use the follow...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)

🔇 Additional comments (6)
README_VI-VN.md (1)

158-158: Updated bot contribution guide link
The link now points to the centralized doc/developing_bot.md file on GitHub, ensuring contributors access the latest documentation.

README_DE-DE.md (1)

158-158: Updated bot contribution guide link
The URL has been updated to the in-repo documentation, aligning with other localized README files for consistency.

README_IT-IT.md (1)

158-158: Updated bot contribution guide link
The guide link now directs to doc/developing_bot.md, matching changes in other locale files.

README_RU-RU.md (1)

158-158: Updated bot contribution guide link
The guide hyperlink is now consistent across localized READMEs and points to the repository's doc file.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота [Этот гайд](https://github.com/ai-shifu/ChatALL/bl...

(Unify_PADJ_NN_number)

CONTRIBUTION.md (1)

94-95: New direct link to bot development documentation
Good addition: contributors now have a direct reference to doc/developing_bot.md for detailed guidance.

README_KO-KR.md (1)

158-158: Bot contribution link updated successfully: The link now correctly references the new comprehensive guide (doc/developing_bot.md).

🧰 Tools
🪛 LanguageTool

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

[가이드](https://github.com/ai-shifu/ChatALL/blo...

(UNPAIRED_BRACKETS)

@PeterDaveHello PeterDaveHello requested a review from Copilot May 27, 2025 14:11

This comment was marked as outdated.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
doc/developing_bot.md (1)

76-125: Consolidate duplicated Vuex store and settings examples
The Vuex store setup (lines 76–125) and the detailed KnowNothingBotSettings.vue snippet (lines 150–197) are nearly identical. To keep the guide DRY and reduce maintenance burden, consider extracting this into one canonical section and linking to it from elsewhere.

Also applies to: 150-197

🧰 Tools
🪛 LanguageTool

[uncategorized] ~99-~99: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)

🧹 Nitpick comments (5)
doc/developing_bot.md (5)

4-4: Use relative link for CONTRIBUTION.md reference
For better maintainability, use a repository-relative path instead of the full GitHub URL:

-[Basic bot setup](https://github.com/ai-shifu/ChatALL/blob/main/CONTRIBUTION.md#adding-a-new-ai-bot)
+[Basic bot setup](../CONTRIBUTION.md#adding-a-new-ai-bot)

52-52: Add comma before “or” in compound sentence
Insert a comma to separate independent clauses:

-If your bot does not require login or you don't mind putting the key directly in the code (strongly not recommended), you can skip this section.
+If your bot does not require login, or you don't mind putting the key directly in the code (strongly not recommended), you can skip this section.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~52-~52: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... etc. If your bot does not require login or you don't mind putting the key directly...

(COMMA_COMPOUND_SENTENCE)


137-138: Replace weak adjective “very simple”
Avoid overused intensifiers; a clearer alternative improves readability:

-using the parameters you set is very simple:
+using the parameters you set is straightforward:
🧰 Tools
🪛 LanguageTool

[style] ~138-~138: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ot.js`, using the parameters you set is very simple: ```JavaScript ... import store from "...

(EN_WEAK_ADJECTIVE)


160-160: Add missing comma before “and”
Separate independent clauses with a comma:

-How you send and parse messages depends on the specific chatbot. Once you receive a response or hit an error, do the following:
+How you send and parse messages depends on the specific chatbot, and once you receive a response or hit an error, do the following:
🧰 Tools
🪛 LanguageTool

[uncategorized] ~160-~160: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)


223-223: Fix grammatical number agreement
Correct “need” to “needs” for subject-verb agreement:

-Plus any other strings your bot need.
+Plus any other strings your bot needs.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~223-~223: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...}, ``` Plus any other strings your bot need. In JavaScript, you can use the follow...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 953d8f6 and 50b4b69.

📒 Files selected for processing (2)
  • README_FR-FR.md (4 hunks)
  • doc/developing_bot.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
doc/developing_bot.md

[uncategorized] ~52-~52: Use a comma before ‘or’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... etc. If your bot does not require login or you don't mind putting the key directly...

(COMMA_COMPOUND_SENTENCE)


[style] ~64-~64: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... with multiple configurations, you will need to do even more work. #### Add settings ...

(REP_NEED_TO_VB)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[style] ~138-~138: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...ot.js`, using the parameters you set is very simple: ```JavaScript ... import store from "...

(EN_WEAK_ADJECTIVE)


[uncategorized] ~160-~160: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)


[uncategorized] ~223-~223: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ...}, ``` Plus any other strings your bot need. In JavaScript, you can use the follow...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)

README_FR-FR.md

[uncategorized] ~34-~34: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | ChatGLM2 6B & 130B ...

(FRENCH_WHITESPACE)


[uncategorized] ~44-~44: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | [Gemma 2B & 7B](https://blog.google/technology/deve...

(FRENCH_WHITESPACE)


[uncategorized] ~45-~45: Le trait d’union doit être supprimé.
Context: ... | Pour les modèles Hugging Face space/self-deployed | | [Groq Cloud](https://console.groq.c...

(MOT_TRAIT_MOT)


[uncategorized] ~50-~50: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | Llama 2 13B & 70B ...

(FRENCH_WHITESPACE)


[uncategorized] ~58-~58: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | [Vicuna 13B & 33B](https://lmsys.org/blog/2023-03-30-...

(FRENCH_WHITESPACE)


[typographical] ~80-~80: Caractère d’apostrophe incorrect.
Context: ...kwei) - Raccourcis clavier. Appuyez sur <kbd>Ctrl</kbd> + <kbd>/</kbd> pour les...

(APOS_INCORRECT)


[typographical] ~80-~80: Caractère d’apostrophe incorrect.
Context: ...vier. Appuyez sur <kbd>Ctrl</kbd> + <kbd>/</kbd> pour les connaître tous (contr...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...udre : 1. Rafraîchir - appuyez sur <kbd>Ctrl</kbd> + <kbd>R</kbd> ou `<kbd...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...r** - appuyez sur <kbd>Ctrl</kbd> + <kbd>R</kbd> ou <kbd></kbd> + <kbd>R...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...kbd>Ctrl+Rou+R`. 2. **Redém...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ... <kbd>R</kbd> ou <kbd></kbd> + <kbd>R</kbd>. 2. Redémarrer - quittez C...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...R</kbd> ou <kbd></kbd> + <kbd>R</kbd>. 2. Redémarrer - quittez ChatALL et...

(APOS_INCORRECT)

🔇 Additional comments (1)
README_FR-FR.md (1)

158-158: Link to new documentation is correct
The French link now properly points to doc/developing_bot.md with fully localized text ("peut vous aider."), matching the updates in other language files.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (7)
doc/developing_bot.md (7)

1-5: Enhance Quick Start with context and relative link
The Quick Start section currently only links to CONTRIBUTION.md. Consider adding a brief summary of the key steps here to make the guide more self-contained, and use a relative link instead of an absolute URL for maintainability:

- - [Basic bot setup](https://github.com/ai-shifu/ChatALL/blob/main/CONTRIBUTION.md#adding-a-new-ai-bot)
+ - [Basic bot setup](../CONTRIBUTION.md#adding-a-new-ai-bot)

57-59: Remove stray backslash
Line 58 contains a lone backslash (\) which appears unintended. Please delete this line to avoid confusing readers.


68-76: Refine informal phrasing
The sentence "By referring to the existing code, you can basically get everything working. No need for further explanation here." is informal. Consider rephrasing for a professional tone, e.g.:

By reviewing the existing implementation, you can adapt the code to suit your bot’s settings.


79-97: Standardize code fence language identifiers
This Vuex store snippet uses JavaScript. For consistency, convert all fences to lowercase (e.g., javascript) across the document.


104-125: Standardize code fence language identifiers
The BotSettings component example uses JavaScript. Please standardize it to javascript to match other snippets.


207-213: Standardize code fence language identifiers
The JSON snippets use json`, which is fine, but for consistency with other fences, ensure all snippet languages are lowercase (javascript, html, json```).


235-238: Standardize code fence language identifiers
In the HTML example, change the fence to lowercase html for consistency.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 50b4b69 and 060ab61.

📒 Files selected for processing (1)
  • doc/developing_bot.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
doc/developing_bot.md

[style] ~64-~64: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... with multiple configurations, you will need to do even more work. #### Add settings ...

(REP_NEED_TO_VB)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~160-~160: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

🔇 Additional comments (3)
doc/developing_bot.md (3)

12-28: UI Order Configuration: Code Snippet is Clear
The example for modifying src/bots/index.js is straightforward and accurate.


168-194: checkAvailability() Implementation Example
The code snippet for toggling availability flags is accurate and covers the necessary cases.


198-203: Custom Bot Icons Example
The instructions for adding a custom icon file and updating the static _logoFilename field are clear and correct.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (4)
doc/developing_bot.md (4)

204-238: Multi-language support instructions are helpful but could show full JSON context
The snippets for en.json and zh.json are correct key/value pairs, but they appear as fragments (and include trailing commas which aren’t valid in standalone JSON). Consider wrapping them in a complete JSON structure or noting that these are file excerpts:

 `en.json`
-  ```json
-  "knowNothing": {
-    "name": "Know Nothing"
-  },
-  ```
+  ```json
+  {
+    "knowNothing": {
+      "name": "Know Nothing"
+    }
+  }
+  ```

64-64: Vary phrasing to avoid repetition
The sentence “For complex settings with multiple configurations, you will need to do even more work” repeats “you will.” Consider rephrasing for readability:

- 3. For complex settings with multiple configurations, you will need to do even more work.
+ 3. Complex setups with multiple configuration options require additional implementation steps.
🧰 Tools
🪛 LanguageTool

[style] ~64-~64: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... with multiple configurations, you will need to do even more work. #### Add settings ...

(REP_NEED_TO_VB)


158-160: Improve sentence separation for clarity
The transition from the list of interfaces to the next sentence is missing a period. Add punctuation and split into two sentences:

- 3. For WebSocket APIs: see `BingChatBot.js` 
- How you send and parse messages depends on the specific chatbot, and once you receive a response or hit an error, do the following: 
+ 3. For WebSocket APIs: see `BingChatBot.js`.
+
+ How you send and parse messages depends on the specific chatbot. Once you receive a response or hit an error, do the following:
🧰 Tools
🪛 LanguageTool

[uncategorized] ~160-~160: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)


162-166: Unify object formatting in code examples
Spacing inside the curly braces varies across examples. For consistency, use a space after { and before }:

- onUpdateResponse(callbackParam, {content: text, done: false});
+ onUpdateResponse(callbackParam, { content: text, done: false });
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 060ab61 and 2770410.

📒 Files selected for processing (1)
  • doc/developing_bot.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
doc/developing_bot.md

[style] ~64-~64: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... with multiple configurations, you will need to do even more work. #### Add settings ...

(REP_NEED_TO_VB)


[uncategorized] ~99-~99: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~160-~160: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

🔇 Additional comments (7)
doc/developing_bot.md (7)

8-48: UI order configuration examples look clear and concise
The instructions and code snippets for modifying src/bots/index.js are easy to follow and correctly illustrate how to change the display order of bots.


50-65: Setting component implementation guidance is comprehensive
The documentation clearly explains when to skip the section and how to scaffold a new settings component in src/components/BotSettings/. The three outlined options (login only, API key only, complex settings) cover typical use cases.

🧰 Tools
🪛 LanguageTool

[style] ~64-~64: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ... with multiple configurations, you will need to do even more work. #### Add settings ...

(REP_NEED_TO_VB)


66-75: Add settings field introduction is accurate
The explanation of Vuetify 3 as the UI framework and the vuex-persist integration is on point. This sets contributors up to adapt the UI to their bot’s configuration needs.


76-97: Vuex store snippet is correct
The sample createStore snippet shows how to declare the knowNothing state and mutation properly. This aligns with the vuex-persist usage instructions.


101-125: BotSettings.vue example is well structured
The example demonstrates mapMutations and mapState usage clearly, showcasing how to wire up settings fields to the Vuex store.


168-195: checkAvailability() implementation guidance is solid
The steps to toggle _isAvailable and return isAvailable() are clear and match the existing bot class patterns.


196-203: Custom bot icons section is straightforward
The instructions for placing an icon in src/assets/bots/ and updating _logoFilename are concise and correct.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (3)
doc/developing_bot.md (3)

3-6: Enhance Quick Start with actionable steps
The Quick Start section currently only links to CONTRIBUTION.md. Consider adding minimal, in-document commands so contributors can get up and running immediately without context-switching. For example:

 ## Quick Start
-- See [Adding a new AI bot](https://github.com/ai-shifu/ChatALL/blob/main/CONTRIBUTION.md#adding-a-new-ai-bot) in `CONTRIBUTION.md`.
++ 1. Clone the repository:
++    ```bash
++    git clone https://github.com/ai-shifu/ChatALL.git
++    cd ChatALL
++    ```
++ 2. Install dependencies:
++    ```bash
++    npm install
++    ```
++ 3. Start the dev server:
++    ```bash
++    npm run dev
++    ```
++ 4. Open http://localhost:3000 in your browser.

This reduces friction for first-time contributors.


60-64: Refine phrasing for professional tone
The phrase “you will need to do a lot of hack work” could be reworded to sound more professional and precise. For example:

  • “you may need to implement custom workarounds to handle CORS or authentication blockers.”

161-167: Clarify onUpdateResponse steps
Steps 1 and 2 overlap in describing partial vs. final updates. Consider simplifying to:

1. For each incoming chunk:
   ```js
   onUpdateResponse(callbackParam, { content: text, done: false });
  1. After the last chunk:
    onUpdateResponse(callbackParam, { done: true });
  2. On success: resolve().
  3. On error: reject(error).

This removes ambiguity about when to include `content`.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 LanguageTool</summary>

[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see `BingChatBot.js`   How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 277041088f927159bed2648503489605cb22fc1b and d9c38fc30943deb014cf639798856cfe7524cada.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `doc/developing_bot.md` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>doc/developing_bot.md</summary>

[uncategorized] ~100-~100: Loose punctuation mark.
Context: ...,     ...   },   ... }); ```  `setting1`, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)

---

[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see `BingChatBot.js`   How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (2)</summary><blockquote>

<details>
<summary>doc/developing_bot.md (2)</summary>

`13-28`: **Review of UI order configuration snippet**  
The example for modifying the `all` array in `src/bots/index.js` is clear and accurate—it effectively demonstrates how to control the display order of bots.

---

`131-134`: **Example correctly updated for Vuetify 3 event binding**  
The `<v-text-field>` snippet now uses `@update:model-value`, which aligns with Vuetify 3’s event model and replaces the deprecated `@change`.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (2)
doc/developing_bot.md (2)

3-6: Make Quick Start actionable
The Quick Start section currently only links to CONTRIBUTION.md. Consider adding direct, runnable commands (e.g., npm install, npm run dev, open http://localhost:3000) so contributors can get up and running without context switching.


161-167: Clarify onUpdateResponse steps
Steps for calling onUpdateResponse still include both a full-content final update and an optional empty-object call, which may confuse contributors. Consider simplifying to:

  1. For each chunk, call onUpdateResponse(callbackParam, { content: text, done: false });
  2. After the final chunk, call onUpdateResponse(callbackParam, { done: true });
    Remove the mixed full-content final update to avoid ambiguity.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d9c38fc and 6ae68c5.

📒 Files selected for processing (1)
  • doc/developing_bot.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
doc/developing_bot.md

[uncategorized] ~100-~100: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

🔇 Additional comments (7)
doc/developing_bot.md (7)

11-29: UI configuration example looks good
The instructions and code snippets for customizing bot order in src/bots/index.js are clear and correct.


53-66: Settings component guidance is clear
The steps for creating a bot settings component using existing templates are well explained.


77-98: Vuex store snippet is accurate
The example for adding state and mutations to src/store/index.js is correct and follows best practices.


102-126: Settings component code is accurate
The code example in KnowNothingBotSettings.vue, including mapMutations, mapState, and correct Vuetify 3 @update:model-value usage, is correct.


131-134: Vuetify 3 input binding is correct
The <v-text-field> snippet uses the proper @update:model-value event for v-model updates.


168-194: checkAvailability explanation is clear
The checkAvailability() guidelines are comprehensive and correctly describe the required behavior.


197-202: Custom bot icon instructions are correct
Placing the icon in src/assets/bots/ and setting _logoFilename is straightforward and accurate.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
doc/developing_bot.md (1)

3-6: Consider enriching the Quick Start with actionable steps
Currently the Quick Start only links to CONTRIBUTION.md. New contributors often appreciate minimal runnable commands (e.g., install dependencies, start the dev server, open localhost) to get up and running immediately.

To illustrate:

## Quick Start
- See [Adding a new AI bot](https://github.com/ai-shifu/ChatALL/blob/main/CONTRIBUTION.md#adding-a-new-ai-bot) in `CONTRIBUTION.md`.
+ 1. Clone the repo and install dependencies:
+    ```bash
+    git clone https://github.com/ai-shifu/ChatALL.git
+    cd ChatALL
+    npm install
+    ```
+ 2. Start the development server:
+    ```bash
+    npm run dev
+    ```
+ 3. Open http://localhost:3000 in your browser.
+ 4. Then see [Adding a new AI bot](https://github.com/ai-shifu/ChatALL/blob/main/CONTRIBUTION.md#adding-a-new-ai-bot).
🧹 Nitpick comments (1)
doc/developing_bot.md (1)

152-167: Refine the _sendPrompt() instructions for clarity
The steps for onUpdateResponse calls are accurate but the wording can be tightened to avoid confusion between partial and final updates.

For example:

1. For each incoming chunk, call:
   ```js
   onUpdateResponse(callbackParam, { content: text, done: false });
  1. After the final chunk, call:
    onUpdateResponse(callbackParam, { done: true });
  2. On completion, call resolve().
  3. On error, call reject(error).
This removes overlap and clarifies when to use each call.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 LanguageTool</summary>

[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see `BingChatBot.js`   How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

</details>

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 6ae68c5be2062f7dbd566c31b89049f14e4b64de and 5466e35283df7bdf686bbe7cece26f4e113e06ef.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `doc/developing_bot.md` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>doc/developing_bot.md</summary>

[uncategorized] ~100-~100: Loose punctuation mark.
Context: ...,     ...   },   ... }); ```  `setting1`, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)

---

[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see `BingChatBot.js`   How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (9)</summary><blockquote>

<details>
<summary>doc/developing_bot.md (9)</summary>

`9-29`: **UI order configuration section is clear**  
The code snippets accurately show how to reorder bots in `src/bots/index.js`. The examples are straightforward and correctly formatted.

---

`51-65`: **Setting component implementation is well explained**  
The guidance on copying existing settings components and notes on login vs. API key setups is concise and actionable. No changes needed here.

---

`72-100`: **Vuex store snippet is correct**  
The example for adding `knowNothing` state and the corresponding `setKnowNothing` mutation is accurate. The note on maintaining the top-level object name is clear.

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 LanguageTool</summary>

[uncategorized] ~100-~100: Loose punctuation mark.
Context: ...,     ...   },   ... }); ```  `setting1`, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)

</details>

</details>

---

`102-126`: **Bot settings component example is accurate**  
The `KnowNothingBotSettings.vue` methods and computed property using `mapMutations` and `mapState` are correctly shown. No adjustments needed.

---

`129-135`: **Vuetify 3 event binding is correct**  
The use of `@update:model-value="setSetting1"` aligns with Vuetify 3 conventions. Good catch on updating from the deprecated `@update`.

---

`168-194`: **checkAvailability() section is clear**  
The description of setting `_isAvailable` flags and returning `this.isAvailable()` is precise. No further changes required.

---

`196-202`: **Custom bot icons instructions are straightforward**  
The guidance to place the icon file and set `_logoFilename` is correct and unambiguous.

---

`204-229`: **Multi-language support JSON examples are valid**  
Both `en.json` and `zh.json` snippets are well-formed and free of trailing commas. The use of ellipses to indicate context is acceptable in documentation.

---

`231-246`: **i18n usage examples look good**  
The JavaScript and template code for retrieving localized strings using `i18n.global.t` and `{{ $t() }}` is clear and accurate.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

@limitx0 limitx0 force-pushed the limitx0-add-doc branch from 5466e35 to 50e7426 Compare May 28, 2025 07:49
@limitx0
Copy link
Author

limitx0 commented May 30, 2025

@PeterDaveHello I'd appreciate your feedback on the commits in this pull request.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (6)
docs/developing_bot.md (5)

11-29: Standardize bot array naming conventions.
The snippet uses ...existing_bots, which mixes snake_case in a JS codebase that predominantly uses camelCase. Consider renaming to existingBots and verify that the variable is defined in your application context.

-  ...existing_bots
+  ...existingBots

53-66: Clarify security considerations for login/API keys.
The note about “hack work” is vague and could discourage contributors. Recommend linking to best practices for securely managing credentials (e.g., environment variables, .env files, or a secrets manager).


151-167: Enhance clarity with types or code examples.
Consider adding a TypeScript interface (or JSDoc) for callbackParam and including a full _sendPrompt sample (e.g., SSE pattern) so contributors see end-to-end code rather than just bullet points.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)


168-194: Include sample error handling in checkAvailability().
A try/catch around the availability checks could improve debuggability. For example:

 static async checkAvailability() {
+  try {
     // ...perform checks...
     this.constructor._isAvailable = true;
+  } catch (err) {
+    console.error('Availability check failed:', err);
+    this.constructor._isAvailable = false;
+  }
     return this.isAvailable();
 }

204-240: Add guidance for missing translation fallbacks.
Recommend mentioning how to handle missing keys (e.g., i18n.global.t('key') || 'Fallback') to avoid untranslated strings appearing in the UI.

README_KO-KR.md (1)

158-158: Improve naturalness of the guide link.
In Korean, it's more idiomatic to use “이 가이드” rather than just “가이드”:

-[가이드](docs/developing_bot.md)가 도움이 될 수 있습니다.
+[이 가이드](docs/developing_bot.md)가 도움이 될 수 있습니다.
🧰 Tools
🪛 LanguageTool

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

가이드가 도움이 될 수 있습니다.
...

(UNPAIRED_BRACKETS)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5466e35 and bae4fa3.

📒 Files selected for processing (12)
  • CONTRIBUTION.md (1 hunks)
  • README.md (1 hunks)
  • README_DE-DE.md (1 hunks)
  • README_ES-ES.md (1 hunks)
  • README_FR-FR.md (4 hunks)
  • README_IT-IT.md (1 hunks)
  • README_JA-JP.md (1 hunks)
  • README_KO-KR.md (1 hunks)
  • README_RU-RU.md (1 hunks)
  • README_VI-VN.md (1 hunks)
  • README_ZH-CN.md (1 hunks)
  • docs/developing_bot.md (1 hunks)
✅ Files skipped from review due to trivial changes (5)
  • README_ZH-CN.md
  • CONTRIBUTION.md
  • README.md
  • README_VI-VN.md
  • README_DE-DE.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • README_IT-IT.md
  • README_JA-JP.md
  • README_ES-ES.md
🧰 Additional context used
🪛 LanguageTool
README_FR-FR.md

[uncategorized] ~34-~34: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | ChatGLM2 6B & 130B ...

(FRENCH_WHITESPACE)


[uncategorized] ~44-~44: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | [Gemma 2B & 7B](https://blog.google/technology/deve...

(FRENCH_WHITESPACE)


[uncategorized] ~45-~45: Le trait d’union doit être supprimé.
Context: ... | Pour les modèles Hugging Face space/self-deployed | | [Groq Cloud](https://console.groq.c...

(MOT_TRAIT_MOT)


[uncategorized] ~50-~50: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | Llama 2 13B & 70B ...

(FRENCH_WHITESPACE)


[uncategorized] ~58-~58: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | [Vicuna 13B & 33B](https://lmsys.org/blog/2023-03-30-...

(FRENCH_WHITESPACE)


[typographical] ~80-~80: Caractère d’apostrophe incorrect.
Context: ...kwei) - Raccourcis clavier. Appuyez sur <kbd>Ctrl</kbd> + <kbd>/</kbd> pour les...

(APOS_INCORRECT)


[typographical] ~80-~80: Caractère d’apostrophe incorrect.
Context: ...vier. Appuyez sur <kbd>Ctrl</kbd> + <kbd>/</kbd> pour les connaître tous (contr...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...udre : 1. Rafraîchir - appuyez sur <kbd>Ctrl</kbd> + <kbd>R</kbd> ou `<kbd...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...r** - appuyez sur <kbd>Ctrl</kbd> + <kbd>R</kbd> ou <kbd></kbd> + <kbd>R...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...kbd>Ctrl+Rou+R`. 2. **Redém...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ... <kbd>R</kbd> ou <kbd></kbd> + <kbd>R</kbd>. 2. Redémarrer - quittez C...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...R</kbd> ou <kbd></kbd> + <kbd>R</kbd>. 2. Redémarrer - quittez ChatALL et...

(APOS_INCORRECT)

README_KO-KR.md

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

가이드가 도움이 될 수 있습니다.
...

(UNPAIRED_BRACKETS)

README_RU-RU.md

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота Этот гайд может помочь в...

(Unify_PADJ_NN_number)

docs/developing_bot.md

[uncategorized] ~100-~100: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

🔇 Additional comments (7)
docs/developing_bot.md (2)

196-203: Custom bot icon instructions are clear.
The guide for placing and referencing the icon file is concise and accurate.


5-5:

Details

✅ Verification successful

Verify anchor in CONTRIBUTION.md.
Double-check that the #adding-a-new-ai-bot section exists in CONTRIBUTION.md so this link won’t 404.


🏁 Script executed:

#!/bin/bash
rg -n "# Adding a new AI bot" CONTRIBUTION.md

Length of output: 47


To pinpoint the actual heading and verify the correct anchor, let’s list all headings and search for “AI bot” in CONTRIBUTION.md:


🏁 Script executed:

#!/bin/bash
# List all markdown headings
rg -n '^#{1,6} ' CONTRIBUTION.md

# Search for "AI bot" mentions
rg -n 'AI bot' CONTRIBUTION.md

Length of output: 1443


Anchor Verified – No Changes Needed
The ## Adding a New AI Bot heading exists in CONTRIBUTION.md (line 76), which GitHub converts to the #adding-a-new-ai-bot anchor. The link in docs/developing_bot.md is correct.

README_RU-RU.md (1)

158-158: Approve updated guide link.
Switching from the external wiki URL to the internal docs/developing_bot.md link keeps documentation self-contained and maintainable.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота Этот гайд может помочь в...

(Unify_PADJ_NN_number)

README_FR-FR.md (4)

29-35: Proper HTML entity usage for ampersand.
Converting & to &amp; in bot names ensures correct rendering in Markdown tables.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~34-~34: Le point-virgule est précédé d’une espace fine insécable.
Context: ... | | ChatGLM2 6B & 130B ...

(FRENCH_WHITESPACE)


80-80: Consistent use of <kbd> tags for keyboard shortcuts.
Wrapping key combos in <kbd> tags improves readability and accessibility.

🧰 Tools
🪛 LanguageTool

[typographical] ~80-~80: Caractère d’apostrophe incorrect.
Context: ...kwei) - Raccourcis clavier. Appuyez sur <kbd>Ctrl</kbd> + <kbd>/</kbd> pour les...

(APOS_INCORRECT)


[typographical] ~80-~80: Caractère d’apostrophe incorrect.
Context: ...vier. Appuyez sur <kbd>Ctrl</kbd> + <kbd>/</kbd> pour les connaître tous (contr...

(APOS_INCORRECT)


139-139: Wrap shortcut keys in <kbd> tags.
Applying <kbd> tags to the refresh/action sequence maintains consistency with the rest of the document.

🧰 Tools
🪛 LanguageTool

[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...udre : 1. Rafraîchir - appuyez sur <kbd>Ctrl</kbd> + <kbd>R</kbd> ou `<kbd...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...r** - appuyez sur <kbd>Ctrl</kbd> + <kbd>R</kbd> ou <kbd></kbd> + <kbd>R...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...kbd>Ctrl+Rou+R`. 2. **Redém...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ... <kbd>R</kbd> ou <kbd></kbd> + <kbd>R</kbd>. 2. Redémarrer - quittez C...

(APOS_INCORRECT)


[typographical] ~139-~139: Caractère d’apostrophe incorrect.
Context: ...R</kbd> ou <kbd></kbd> + <kbd>R</kbd>. 2. Redémarrer - quittez ChatALL et...

(APOS_INCORRECT)


158-158: Correct French translation and relative link.
Updating the bot guide link to a relative path and translating the link text to French (“peut vous aider”) aligns with localization standards.

@limitx0 limitx0 force-pushed the limitx0-add-doc branch from ec2df66 to 8d98424 Compare June 1, 2025 15:16
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
docs/developing_bot.md (1)

79-98: Include missing Vuex imports and plugin setup.
As noted in past reviews, the store snippet omits the createStore import and the vuex-persist plugin registration, which are required for local-storage persistence to work.

🧹 Nitpick comments (3)
docs/developing_bot.md (3)

11-29: Enhance the UI-order snippet with import guidance.
The example shows how to reorder the all array, but contributors may forget to import their new bot at the top of src/bots/index.js. Consider adding a note or diff like:

+ // At the top of src/bots/index.js
+ import KnowNothingBot from "@/bots/KnowNothingBot";

55-66: Provide a minimal Vue component skeleton.
While you point to existing templates, including a short code stub for KnowNothingBotSettings.vue would help readers get started faster. For example:

<template>
  <v-form>...</v-form>
</template>
<script>
import Bot from "@/bots/KnowNothingBot";
export default {
  name: "KnowNothingBotSettings",
  //
};
</script>

168-194: Consider adding a code example for checkAvailability().
The description is clear, but a small snippet illustrating a minimal checkAvailability implementation would make it easier to copy-paste.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between bae4fa3 and 8d98424.

📒 Files selected for processing (12)
  • CONTRIBUTION.md (1 hunks)
  • README.md (1 hunks)
  • README_DE-DE.md (1 hunks)
  • README_ES-ES.md (1 hunks)
  • README_FR-FR.md (1 hunks)
  • README_IT-IT.md (1 hunks)
  • README_JA-JP.md (1 hunks)
  • README_KO-KR.md (1 hunks)
  • README_RU-RU.md (1 hunks)
  • README_VI-VN.md (1 hunks)
  • README_ZH-CN.md (1 hunks)
  • docs/developing_bot.md (1 hunks)
✅ Files skipped from review due to trivial changes (5)
  • README_ZH-CN.md
  • README_JA-JP.md
  • README_ES-ES.md
  • README_DE-DE.md
  • README_IT-IT.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • README_VI-VN.md
  • CONTRIBUTION.md
  • README.md
  • README_FR-FR.md
🧰 Additional context used
🪛 LanguageTool
README_KO-KR.md

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

가이드가 도움이 될 수 있습니다.
...

(UNPAIRED_BRACKETS)

README_RU-RU.md

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота Этот гайд может помочь в...

(Unify_PADJ_NN_number)

docs/developing_bot.md

[uncategorized] ~100-~100: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

🔇 Additional comments (9)
README_RU-RU.md (1)

156-160: Link update is correct and consistent.
The relative link [Этот гайд](docs/developing_bot.md) properly redirects to the new docs/developing_bot.md guide. No further changes needed here.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота Этот гайд может помочь в...

(Unify_PADJ_NN_number)

README_KO-KR.md (1)

156-160: Link update is correct and consistent.
The relative link [가이드](docs/developing_bot.md) in the "봇 기부" section correctly points to the new documentation file.

🧰 Tools
🪛 LanguageTool

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

가이드가 도움이 될 수 있습니다.
...

(UNPAIRED_BRACKETS)

docs/developing_bot.md (7)

1-6: Quick Start link is accurate.
The pointer to ../CONTRIBUTION.md#adding-a-new-ai-bot correctly directs users to the relevant section in the contribution guide.


129-136: v-text-field binding is correct.
The example demonstrates proper use of v-model and an update event in Vuetify 3.


139-149: Store usage snippet is clear.
Referencing store.state.knowNothing and destructuring it provides a straightforward pattern for accessing settings.


151-167: _sendPrompt() guidance is well-structured.
The step-by-step instructions for different response patterns cover HTTP, SSE, and WebSocket flows comprehensively.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~161-~161: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)


196-203: Custom icon instructions are straightforward.
Specifying the asset path and _logoFilename constant covers everything needed for icon integration.


209-232: Multi-language JSON snippets look good.
The examples for en.json and zh.json clearly show where to add your bot’s localization keys.


233-246: i18n usage in JS and HTML is accurate.
Showing both the i18n.global.t() call and the {{ $t() }} interpolation gives a complete picture of localization in code.

@billfelix

This comment was marked as off-topic.

@limitx0
Copy link
Author

limitx0 commented Jun 1, 2025

@PeterDaveHello Please help me review this changes.

@PeterDaveHello PeterDaveHello requested a review from Copilot June 7, 2025 12:54
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request adds a new detailed guide for developing bots to improve onboarding documentation for developers.

  • Introduces the file docs/developing_bot.md with step-by-step instructions for bot development.
  • Updates multiple localized README files to reference the new guide.
  • Updates CONTRIBUTION.md to point users to the new, comprehensive bot development documentation.

Reviewed Changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated no comments.

File Description
docs/developing_bot.md New guide detailing steps from UI ordering to settings configuration.
README_ZH-CN.md, README_VI-VN.md, README_RU-RU.md, README_KO-KR.md, README_JA-JP.md, README_IT-IT.md, README_FR-FR.md, README_ES-ES.md, README_DE-DE.md, README.md Updated links to use the new developing_bot.md guide.
CONTRIBUTION.md Added a reference to docs/developing_bot.md for detailed guidance.
Comments suppressed due to low confidence (1)

docs/developing_bot.md:63

  • [nitpick] Consider rephrasing 'a lot of hack work' to a more neutral term such as 'extensive workarounds' to maintain a professional tone in the documentation.
(Note: Some websites have implemented security measures to prevent ChatALL and similar clients from accessing them. If you encounter such situations, you will need to do a lot of hack work.)

@PeterDaveHello
Copy link
Collaborator

@coderabbitai, please help review content in developing_bot.md based on its original content written in Simplified Chinese:

如何添加一个新的 AI 对话机器人

为 ChatALL 增加新的 AI 对话机器人,最简单情况只需要三步:

  1. src/bots/,复制 TemplateBot.js 创建一个 XXXXBot.js 文件
  2. XXXXBot.js 中实现 _sendPrompt()
  3. 把对 XXXXBot.js 的引用添加到 src/App.vue

下面开始一步步介绍。假定已经 clone 了最新代码。

Hello world!

假定你要支持的 AI 大模型叫「KnowNothing」,那么按以下步骤可以快速跑起一个 Hello world。

第一步:用模板创建 js 文件

src/bots/,复制 TemplateBot.js 创建一个 KnowNothingBot.js 文件。

第二步:修改 js 文件

修改 KnowNothingBot.js 的类名和前两个成员变量的初始值如下:

export default class KnowNothingBot extends Bot {
  static _brandId = "KnowNothing"; // Brand id of the bot, should be unique. Used in i18n.
  static _className = "KnowNothingBot"; // Class name of the bot
  ...

第三步:让代码生效

修改 src/bots/index.js,找到如下代码:

// Bots
import ChatGPT35Bot from "@/bots/openai/ChatGPT35Bot";
import ChatGPT4Bot from "@/bots/openai/ChatGPT4Bot";
import ChatGPTBrowsingBot from "@/bots/openai/ChatGPTBrowsingBot";
import BingChatPreciseBot from "@/bots/microsoft/BingChatPreciseBot";
import BingChatBalancedBot from "@/bots/microsoft/BingChatBalancedBot";
import BingChatCreativeBot from "@/bots/microsoft/BingChatCreativeBot";
import SparkBot from "@/bots/SparkBot";
import BardBot from "@/bots/BardBot";
import OpenAIAPI35Bot from "@/bots/openai/OpenAIAPI35Bot";
import OpenAIAPI4Bot from "@/bots/openai/OpenAIAPI4Bot";
import MOSSBot from "@/bots/MOSSBot";

任意位置增加一行:

import KnowNothingBot from '@/bots/KnowNothingBot';

再找到:

const all = [
  ChatGPT35Bot.getInstance(),
  ChatGPT4Bot.getInstance(),
  OpenAIAPI35Bot.getInstance(),
  OpenAIAPI4Bot.getInstance(),
  BingChatCreativeBot.getInstance(),
  BingChatBalancedBot.getInstance(),
  BingChatPreciseBot.getInstance(),
  WenxinQianfanBot.getInstance(),
  SparkBot.getInstance(),
  MOSSBot.getInstance(),
  BardBot.getInstance(),
],

把你的 bot 放进去。注意,这里对各个 bot 的引用顺序,决定了它们在图标栏出现的顺序。比如,你希望你的 bot 在 ChatGPT 和 Bing Chat 之间,那么:

const all = [
  ChatGPT35Bot.getInstance(),
  ChatGPT4Bot.getInstance(),
  KnowNothingBot.getInstance(),  // You are here
  OpenAIAPI35Bot.getInstance(),
  OpenAIAPI4Bot.getInstance(),
  ...
],

第四步:运行

是的,hello world 已经完成了。在项目目录下,执行下面命令(假定你已经安装了 npm):

npm install
npm run electron:serve

图标栏里看到它了吗?选择它,然后发个消息试试吧!

增加设置组件

需要在设置组件里实现登录、API key 配置等功能,这是完成其它核心功能的基础。但如果你的 bot 不需要登录,或者不在意把 key 直接放到代码里(非常不建议这么做),那么可以跳过本节。

创建设置组件

设置组件要建在 src/components/BotSettings/ 下,文件名是 KnowNothingBotSettings.vue

现有的设置组件可以当做模板:

  1. 如果只需要登录能力,那么可以复制 BardBotSettings.vue,修改 import Bot from "@/bots/BardBot";import Bot from "@/bots/KnowNothingBot"; 就完工了。(有些网站做了不少安全防范阻止 ChatALL 之类的客户端访问。如果遇到这种情况,那要做很多 hack 工作)
  2. 如果只需要配置 key,那么可以复制 WenxinQianfanBotSettings.vue,但要做的工作就有点儿多了。
  3. 如果有复杂的多项配置,那么要做的工作就更多了。

增加设置项

ChatALL 的设置组件使用 Vuetify 3 实现。访问官方文档可以查看和测试它支持的丰富组件。通过参考已有代码,基本可以完成开发工作,这里不再赘述。

ChatALL 的设置参数通过 vuex-persist 库保存在 local storage 中。这个库很好用,虽然文档不太好读。简要介绍下怎么用。

首先,在 src/store/index.js 中添加两段代码:

export default createStore({
  state: {
    ...
    knowNothing: {
      setting1: "",
      setting2: "",
    },
    ...
  },
  mutations: {
    ...
    setKnowNothing(state, { setting1, setting2 }) {
      state.knowNothing = { setting1, setting2 };
    },
    ...
  },
  ...
});

setting1setting2 可以根据你的情况进行任意增删修改,包括建立下级对象。但一定在最顶层是个 knowNothing 对象,哪怕只有一个配置项。

然后在 KnowNothingBotSettings.vue 中,添加:

export default {
  ...
  methods: {
    ...mapMutations(["setKnowNothing"]),
    setSetting1(value){
      this.setKnowNothing({
        ...this.knowNothing,
        setting1: value
      })
    },
    setSetting2(value){
      this.setKnowNothing({
        ...this.knowNothing,
        setting2: value
      })
    },
  },
  computed: {
    ...mapState(["knowNothing"])
  }
}

最后,把 Vuetify 组件的 v-model 指向对应的 knowNothing.xxx,生效动作指向对应的 setXxx() 函数。例如:

<v-text-field
  v-model="knowNothing.setting1"
  @change="setSetting1($event.target.value)"
></v-text-field>

完工!运行后,打开 DevTools,可以在 Application 下查看存储是否正确。

在 KnowNothingBot.js 中使用设置的参数非常简单:

...
import store from "@/store";
...
store.state.knowNothing.setting1
store.state.knowNothing.setting2
const { setting1, setting2 } = store.state.knowNothing;
...

实现核心功能

实现 checkAvailability()

ChatALL 会在首次启动、页面刷新(Command+R 或 Ctrl+R)和完成设置等时,调用此函数,来刷新这个 bot 的可用状态。

一般情况,它完成如下工作:

  1. 检查登录是否有效
  2. 检查 API key 是否配置正确
  3. 检查其它影响运行的条件是否满足

如果一切正常,要执行:

this.constructor._isAvailable = true;

否则执行:

this.constructor._isAvailable = false;

最后一定要:

return this.isAvailable();

实现 _sendPrompt()

这是最核心的功能,完成发送和接收消息。

现有代码是不错的参考:

  1. 如果接口是普通 http 调用,可以参考 BardBot.js
  2. 如果接口是 SSE,可以参考 ChatGPTBot.js
  3. 如果接口是 WebSocket,可以参考 BingChatBot.js

发送消息和解析接收到的消息要根据 bot 的具体情况而处理。得到响应,或者出错了,要这么处理:

  1. 收到返回的部分文本,调用 onUpdateResponse(callbackParam, {});
  2. 如果返回数据中并不包含目前为止的所有文本,而是每次只返回最新的那部分,需要自己完成所有文本的拼装,再调用 onUpdateResponse(callbackParam, {content: text, done: false)};
  3. 得到所有文本后,调用 onUpdateResponse(callbackParam, {content: text, done: true)}; 完成所有数据的更新。如果文本之前已经都 onUpdateResponse 过,那么调用 onUpdateResponse(callbackParam, {done: true)}; 可以达到同样效果
  4. 正常结束,最后调用 resolve()
  5. 如果出错,需要调用 reject(error)。这个 error 既可以是个异常,也可以是个错误信息字符串。ChatALL 会自动处理它,把它显示给用户

实现 createConversation()

ChatALL 将来会实现历史消息保存功能,且支持多个 chat/thread/session/conversation(随便叫哪个)。实现 createConversation() 主要是为了兼容未来,现在不做也可以。

所以,这段就不写了吧……

其它

自定义图标

图标文件放到 src/assets/bots/knownothing-logo.png,修改 KnowNothingBot.js

static _logoFilename = "knownothing-logo.png";

多语言支持

多语言资源放在 src/i18n/locales 下,用语言代码命名的 .json 文件中。你需要至少为你的 bot 添加:

en.json

    "knowNothing": {
        "name": "Know Nothing"
    },

zh.json

    "knowNothing": {
        "name": "啥都不懂"
    },

以及其它字符串。

在 JavaScript 代码里这样调用多语言:

import i18n from "@/i18n";
...
i18n.global.t("knowNothing.stringName")
...

在 HTML 代码里是这样:

{{ $t("knowNothing.stringName") }}

定制 user-agent

有些网站会限制特定浏览器才能访问,所以需要在 KnowNothingBot.js 中:

static _userAgent = "THE_RIGHT_USER_AGENT";

最后

没了...欢迎提交 PR!

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jun 7, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Read the developing_bot.md file to compare with the original Chinese content
cat docs/developing_bot.md

Length of output: 7239


@PeterDaveHello Thank you for providing the original Chinese content for comparison. After reviewing both versions, I've identified several significant differences between the English translation in developing_bot.md and the original Chinese documentation:

Major Missing Sections

1. Complete "Hello World" Tutorial Missing

The Chinese version has a comprehensive step-by-step tutorial for creating a KnowNothingBot that includes:

  • Step 1: Copy TemplateBot.js to create KnowNothingBot.js
  • Step 2: Modify class name and variables
  • Step 3: Add imports and register in src/bots/index.js
  • Step 4: Run with npm install and npm run electron:serve

The English version completely omits this tutorial and only refers to CONTRIBUTION.md.

2. Missing Basic Introduction

The Chinese starts with a clear 3-step overview:

  1. Copy TemplateBot.js to create XXXXBot.js
  2. Implement _sendPrompt() in the bot file
  3. Add reference to src/App.vue (Note: Chinese mentions App.vue but the tutorial actually shows index.js)

3. Missing Implementation Sections

  • createConversation() function: Mentioned in Chinese for future compatibility
  • User-agent customization: Complete section missing from English

Structural Differences

The Chinese provides a tutorial progression (beginner → advanced), while the English treats everything as "Advanced Topics." This makes the English less accessible to newcomers.

Technical Code Differences

Vuetify event handling:

  • Chinese: @change="setSetting1($event.target.value)"
  • English: @update:model-value="setSetting1"

The English version uses the more modern Vuetify 3 syntax.

Recommendation

The English version appears to be a restructured reference guide rather than a complete translation. To better serve developers, consider:

  1. Adding the missing Hello World tutorial - this is crucial for onboarding new contributors
  2. Including the basic 3-step introduction for quick reference
  3. Adding the missing sections (createConversation, user-agent customization)
  4. Restructuring to provide both beginner and advanced content

The current English version is technically accurate for what it covers, but it's incomplete compared to the comprehensive Chinese original.

  (\   /)
 ( ._. )
o_(")(")

thinking deeply about documentation completeness

@PeterDaveHello
Copy link
Collaborator

@limitx0 Could you review CodeRabbitAI's comparison above? The English version seems to be missing the essential "Hello World" tutorial from the Chinese original. New contributors would benefit from the step-by-step walkthrough for creating a KnowNothingBot.

Please confirm if you plan to add the missing beginner sections to make this a complete tutorial rather than just an advanced reference guide.

@limitx0
Copy link
Author

limitx0 commented Jun 9, 2025

Except for createConversation(), which seems not to be implemented yet, all the other missing parts (including the "Hello World" tutorial) mentioned by CodeRabbitAI are already covered in the Adding a New AI Bot section of the CONTRIBUTION.md file.

@PeterDaveHello Do you think it would be helpful to add a link to Adding a New AI Bot in this document, or would it be better to move the entire section over here?

@PeterDaveHello
Copy link
Collaborator

Thank you @limitx0 for this comprehensive documentation work.

Given the overlapping content between CONTRIBUTION.md and docs/developing_bot.md, would it make sense to consolidate everything into an enhanced CONTRIBUTION.md instead?

Benefits:

  • Single source of truth - easier to maintain and translate
  • Better discoverability - contributors naturally check CONTRIBUTION.md first
  • Avoids content duplication

We could enhance the existing "Adding a New AI Bot" section with your detailed content, including the missing "Hello World" tutorial.

Thoughts on this consolidation approach?

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1208ffe and 02bc365.

📒 Files selected for processing (1)
  • CONTRIBUTION.md (2 hunks)
🧰 Additional context used
🪛 LanguageTool
CONTRIBUTION.md

[uncategorized] ~336-~336: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~397-~397: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
CONTRIBUTION.md (2)

94-95: Duplicate link path fix (already noted).

The link points to docs/developing_bot.md, but the file resides in doc/.

-[docs/developing_bot.md](docs/developing_bot.md)
+[doc/developing_bot.md](doc/developing_bot.md)

243-468: Remove duplicated advanced section (already suggested).

The “Advanced Topics on Bot Development” block duplicates content maintained in doc/developing_bot.md.
Keep only a high-level reference here to avoid two sources of truth:

-### Advanced Topics on Bot Development
-<detailed content lines 244–468>
+# See [doc/developing_bot.md](doc/developing_bot.md) for advanced bot development topics.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~336-~336: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~397-~397: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

🧹 Nitpick comments (2)
README_RU-RU.md (1)

158-158: Suggest using a formal Russian term instead of a loanword.

In Russian, “гайд” is colloquial; it’s clearer to use “руководство”.
Proposed change:

-[Этот гайд](CONTRIBUTION.md#adding-a-new-ai-bot) может помочь вам.
+[Это руководство](CONTRIBUTION.md#adding-a-new-ai-bot) может помочь вам.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота Этот гайд м...

(Unify_PADJ_NN_number)

README_KO-KR.md (1)

156-158: Refine the Korean translation for “Bot Contribution.”

The heading “봇 기부” reads as “bot donation.” Use “봇 기여” (bot contribution) or “새 AI 봇 추가” (add a new AI bot).
For example:

-### 봇 기부
+[### 봇 기여](CONTRIBUTION.md#adding-a-new-ai-bot)
🧰 Tools
🪛 LanguageTool

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

가이드가 도...

(UNPAIRED_BRACKETS)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 02bc365 and 70a41ce.

📒 Files selected for processing (11)
  • CONTRIBUTION.md (2 hunks)
  • README.md (1 hunks)
  • README_DE-DE.md (1 hunks)
  • README_ES-ES.md (1 hunks)
  • README_FR-FR.md (1 hunks)
  • README_IT-IT.md (1 hunks)
  • README_JA-JP.md (1 hunks)
  • README_KO-KR.md (1 hunks)
  • README_RU-RU.md (1 hunks)
  • README_VI-VN.md (1 hunks)
  • README_ZH-CN.md (1 hunks)
✅ Files skipped from review due to trivial changes (5)
  • README_DE-DE.md
  • README_ES-ES.md
  • README_VI-VN.md
  • README_IT-IT.md
  • README.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • README_ZH-CN.md
  • README_JA-JP.md
  • README_FR-FR.md
🧰 Additional context used
🪛 LanguageTool
CONTRIBUTION.md

[uncategorized] ~336-~336: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~397-~397: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

README_KO-KR.md

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

가이드가 도...

(UNPAIRED_BRACKETS)

README_RU-RU.md

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота Этот гайд м...

(Unify_PADJ_NN_number)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (1)
CONTRIBUTION.md (1)

242-466: 🛠️ Refactor suggestion

Remove duplicated advanced topics section
This detailed block duplicates content that belongs in doc/developing_bot.md, creating two sources of truth and increasing maintenance overhead. Replace it with a concise link to the dedicated document.

Suggested diff:

- ### Advanced Topics on Bot Development
- ... (lines 243-466)
+ For advanced bot development topics and detailed examples, see [doc/developing_bot.md](doc/developing_bot.md).
🧰 Tools
🪛 LanguageTool

[uncategorized] ~334-~334: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~395-~395: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 70a41ce and 2ee9778.

📒 Files selected for processing (11)
  • CONTRIBUTION.md (1 hunks)
  • README.md (1 hunks)
  • README_DE-DE.md (1 hunks)
  • README_ES-ES.md (1 hunks)
  • README_FR-FR.md (1 hunks)
  • README_IT-IT.md (1 hunks)
  • README_JA-JP.md (1 hunks)
  • README_KO-KR.md (1 hunks)
  • README_RU-RU.md (1 hunks)
  • README_VI-VN.md (1 hunks)
  • README_ZH-CN.md (1 hunks)
✅ Files skipped from review due to trivial changes (4)
  • README_ZH-CN.md
  • README_ES-ES.md
  • README.md
  • README_JA-JP.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • README_VI-VN.md
  • README_DE-DE.md
  • README_FR-FR.md
  • README_IT-IT.md
🧰 Additional context used
🪛 LanguageTool
CONTRIBUTION.md

[uncategorized] ~334-~334: Loose punctuation mark.
Context: ..., ... }, ... }); ``` setting1, `setting2`, and sub-objects can be adde...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~395-~395: Use a comma before “and” if it connects two independent clauses (unless they are closely connected and short).
Context: ...PIs: see BingChatBot.js How you send and parse messages depends on the specific ...

(COMMA_COMPOUND_SENTENCE_2)

README_KO-KR.md

[typographical] ~158-~158: Pas de correspondance fermante ou ouvrante pour le caractère « [ »
Context: ... 문의해 주세요.

개발자용

봇 기부

가이드가 도움이 ...

(UNPAIRED_BRACKETS)

README_RU-RU.md

[uncategorized] ~158-~158: Притяжательное прилагательное (местоимение) не согласуется с существительным по числу.
Context: ...# Для разработчиков ### Сделать бота Этот гайд може...

(Unify_PADJ_NN_number)

@limitx0
Copy link
Author

limitx0 commented Jun 11, 2025

I've moved the detailed instructions for adding a bot to CONTRIBUTION.md.
Could you please take a look and let me know if everything looks good?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants