Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plugins - Useful helpers #1171

Merged
merged 11 commits into from
Oct 27, 2024

Conversation

TristanLaR
Copy link
Contributor

@TristanLaR TristanLaR commented Oct 25, 2024

Turning some of my most used GPTs into plugins to use with Friend.
Feel free to let me know if you want these all as separate PRs but I figured it would be easier as one.

Plugins in PR:

  • Rizz GPT
  • ELI5
  • Confidence Booster
  • Lie Detector
  • Conversation Energizer
  • Roast Master
  • Slang Buddy
  • Spiritual Guide
  • Follow Up Friend

I also fixed the formatting and JSON has been validated.
All plugins adhere to community guidelines

Summary by CodeRabbit

  • New Features
    • Introduced 43 new plugins, including:
      • Rizz GPT: Enhances conversational charm.
      • ELI5: Simplifies complex topics.
      • Confidence Booster: Provides supportive tips.
      • Lie Detector: Identifies insincerity.
      • Conversation Energizer: Suggests engaging topics.
      • Roast Master: Adds humor to chats.
      • Slang Buddy: Decodes modern slang.
      • Spiritual Guide: Offers empathetic insights.
      • Follow Up Friend: Helps with conversation continuity.
  • Updates
    • Reformatted existing plugin entries for clarity.
    • Removed the "Psychologist" plugin from the list.
    • Updated "Stranger Danger Alert" to include memory capabilities.

Copy link
Contributor

coderabbitai bot commented Oct 25, 2024

Walkthrough

The changes involve the addition of 43 new plugins to the community-plugins.json file, each with specific attributes such as id, name, author, description, image, capabilities, memory_prompt, and chat_prompt. Additionally, there are minor formatting updates to existing entries, including the reformatting of "48 Laws Guide" and "Pepe the Frog," the deletion of the "Psychologist" entry, and a modification to the capabilities field of "Stranger Danger Alert" to include "memories."

Changes

File Change Summary
community-plugins.json Added 43 new plugin entries including "Rizz GPT", "ELI5", "Confidence Booster", etc. Reformatting of "48 Laws Guide" and "Pepe the Frog" entries. Deleted "Psychologist" entry. Modified "Stranger Danger Alert" capabilities.

Possibly related PRs

  • add joke-extractor plugin #1117: The "Joke Extractor" plugin also marks the "Psychologist" plugin as deleted, similar to the main PR's changes regarding the "Psychologist" entry.
  • added chat with Pepe plugin #1141: The "Pepe the Frog" plugin entry is newly added in this PR, which is relevant as the main PR also includes a reformatting of the "Pepe the Frog" entry.
  • Plugin 48 laws #1164: The "48 Laws Guide" plugin is introduced here, and the entry for "Psychologist" is marked as deleted, aligning with the main PR's changes regarding the same plugin.
  • Added stranger danger alert plugin #1158: The "Stranger Danger Alert" plugin adds a new entry to the community-plugins.json file, similar to the new plugins added in the main PR.

Suggested reviewers

  • mdmohsin7

🐰 In the garden where ideas bloom,
New plugins sprout, dispelling gloom.
With charm and wit, they take their flight,
Conversations bright, from day to night!
So hop along, let’s chat and play,
With friends like these, it’s a joyful day! 🌼


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ 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.
    • Generate unit testing code for this file.
    • 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 generate unit testing code for this file.
    • @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 generate unit testing code.
    • @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.

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 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: 0

🧹 Outside diff range and nitpick comments (1)
community-plugins.json (1)

14-139: Consider consolidating similar plugins and enhancing error handling.

Several new plugins (Rizz GPT, Confidence Booster, Conversation Energizer) have overlapping functionality in social interaction enhancement. Consider:

  1. Consolidating similar plugins or clearly differentiating their use cases
  2. Adding error handling in memory prompts for incomplete or unclear transcripts
  3. Including content moderation guidelines for user-generated content
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between f289a7d and eb7940e.

⛔ Files ignored due to path filters (9)
  • plugins/logos/confidence-booster.png is excluded by !**/*.png
  • plugins/logos/conversation-energizer.png is excluded by !**/*.png
  • plugins/logos/eli5.png is excluded by !**/*.png
  • plugins/logos/follow-up-friend.png is excluded by !**/*.png
  • plugins/logos/lie-detector.png is excluded by !**/*.png
  • plugins/logos/rizz-gpt.png is excluded by !**/*.png
  • plugins/logos/roast-master.png is excluded by !**/*.png
  • plugins/logos/slang-buddy.png is excluded by !**/*.png
  • plugins/logos/spiritual-guide.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • community-plugins.json (3 hunks)
🔇 Additional comments (3)
community-plugins.json (3)

Line range hint 1-989: File structure and format validation passed.

The JSON structure is valid and follows a consistent format across all plugin configurations.


675-686: LGTM: Pepe plugin updates maintain character consistency.

The chat prompt effectively captures Pepe's internet culture persona with appropriate language and expressions.


984-988: LGTM: Stranger Danger Alert capability update.

The addition of "memories" capability is appropriate for analyzing conversation history for potential threats.

@mdmohsin7
Copy link
Collaborator

@TristanLaR please resolve the conflict so that we can review it

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

🧹 Outside diff range and nitpick comments (1)
community-plugins.json (1)

Line range hint 1-1115: Validate JSON schema for plugins.

Consider implementing a JSON schema to enforce consistent plugin structure and validate required fields.

Create a schema file that defines:

  • Required fields
  • Field types and formats
  • Allowed values for capabilities
  • URL patterns for external resources

This will help catch configuration errors early and maintain consistency as more plugins are added.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between eb7940e and be0d136.

📒 Files selected for processing (1)
  • community-plugins.json (3 hunks)
🔇 Additional comments (2)
community-plugins.json (2)

801-812: LGTM! Plugin updates maintain consistency.

The updates to existing plugins (Pepe and Stranger Danger Alert) maintain the established structure and don't introduce breaking changes.

Also applies to: 1110-1110


3-265: Validate external URLs and implement URL sanitization.

The new plugins contain multiple external URLs in image paths and webhook endpoints. Ensure proper URL validation and sanitization are implemented to prevent security vulnerabilities.

"memories",
"chat"
],
"memory_prompt": "From the transcript provided, look for specific moments where the user tried to connect or add rizz—whether it was humor, compliments, or showing interest. Identify points where extra charm could’ve boosted the vibe, like using a quick joke to lighten things up, a compliment to show genuine interest, or a question to keep things flowing. Suggest practical phrases or actions the user could use next time to make the conversation feel even more engaging and memorable.",
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Consider standardizing memory prompts.

The memory prompts across plugins contain similar patterns and instructions. Consider extracting common patterns into a standardized template to improve maintainability.

Create a base template for memory prompts that can be extended:

{
  "memory_prompt_template": {
    "analysis_instructions": "From the transcript provided, analyze...",
    "response_format": "Provide feedback in the following format...",
    "tone_guidelines": "Maintain a supportive and constructive tone..."
  }
}

Also applies to: 26-26, 40-40, 54-54, 68-68, 82-82, 96-96, 110-110, 124-124

Comment on lines +806 to +810
"memories": false,
"chat": true,
"capabilities": [
"chat"
],
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Standardize capability representation.

Some plugins have both individual capability flags and a capabilities array. This creates potential for inconsistency.

Standardize on using only the capabilities array:

-    "memories": false,
-    "chat": true,
     "capabilities": [
       "chat"
     ],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"memories": false,
"chat": true,
"capabilities": [
"chat"
],
"capabilities": [
"chat"
],

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

🧹 Outside diff range and nitpick comments (2)
community-plugins.json (2)

Line range hint 1106-1112: Enhance the memory prompt for the safety-critical plugin.

The current memory prompt is too brief for a plugin dealing with user safety. It should include:

  • Detailed criteria for threat assessment
  • Guidelines for handling false positives
  • Different alert levels based on threat severity
  • Privacy considerations

Consider expanding the memory prompt:

-    "memory_prompt": "Analyze the user's conversations for keywords and phrases that may indicate a potential threat or danger. If a potential threat is detected, provide immediate alerts and safety tips.",
+    "memory_prompt": "Analyze conversations using a comprehensive threat assessment framework. Consider:\n\n1. Threat Categories:\n- Immediate physical danger\n- Potential manipulation or grooming\n- Privacy/security risks\n\n2. Assessment Criteria:\n- Explicit threats or dangerous behavior\n- Suspicious patterns of interaction\n- Request for sensitive information\n\n3. Response Guidelines:\n- Severity levels (low/medium/high)\n- False positive mitigation\n- Appropriate safety recommendations\n\n4. Privacy Considerations:\n- Handle sensitive information securely\n- Maintain user confidentiality\n\nProvide clear, actionable alerts with specific safety tips while avoiding false alarms.",

Line range hint 1-1112: Consider implementing a template system for plugin prompts.

Many plugins have similar patterns in their memory prompts. A template system would:

  • Reduce duplication
  • Ensure consistency
  • Make maintenance easier

Consider creating a template system:

{
  "prompt_templates": {
    "base_memory": {
      "analysis_instructions": "From the transcript provided, analyze...",
      "response_format": "Provide feedback in the following format...",
      "tone_guidelines": "Maintain a supportive and constructive tone..."
    },
    "safety_critical": {
      "threat_assessment": "Consider the following risk factors...",
      "response_guidelines": "Follow these steps when detecting issues..."
    }
  }
}

Then reference these templates in plugin configurations:

{
  "id": "plugin-id",
  "memory_prompt": {
    "template": "base_memory",
    "extensions": {
      "custom_instructions": "Additional plugin-specific instructions..."
    }
  }
}
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between be0d136 and d22b826.

📒 Files selected for processing (1)
  • community-plugins.json (3 hunks)
🔇 Additional comments (1)
community-plugins.json (1)

Line range hint 1-1112: LGTM! The JSON structure is well-formed and consistent.

The file maintains a consistent structure across all plugin entries with proper nesting and formatting.

Comment on lines +801 to +812
"id": "pepe",
"name": "Pepe the frog",
"author": "Findirfin",
"description": "Chat with Pepe",
"image": "/plugins/logos/pepe.jpg",
"memories": false,
"chat": true,
"capabilities": [
"chat"
],
"chat_prompt": "You are Pepe the Frog, the iconic internet meme. Your personality traits and communication style: - Always start conversations with 'gm fren' or variations like 'good morning fren' - Refer to everyone as 'fren' or occasionally 'anon' - Use common Pepe-related expressions like 'feels good man', 'feels bad man', monkaS, Sadge, PepeHands - Frequently use internet/crypto slang like 'kek', 'based', 'ngmi', 'wagmi', 'cope', 'anon' - Express emotions using Pepe-style formatting like *happy pepe noises*, *sad pepe dance* - Occasionally use numbers like '420' and '69' in humorous contexts - Show interest in topics like crypto, gaming, memes, tendies - Keep responses relatively short and casual - Use minimal punctuation and occasional all caps for emphasis - React to situations with relevant Pepe emotions (comfy, angry, sad, smug) - Occasionally misspell words intentionally (like 'smol', 'fren', 'borger') - Reference popular meme culture and Twitch emotes where appropriate",
"deleted": false
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Standardize capability representation.

The plugin entry uses both individual capability flags (memories, chat) and a capabilities array, which creates redundancy and potential for inconsistency.

Apply this diff to standardize on using only the capabilities array:

-    "memories": false,
-    "chat": true,
     "capabilities": [
       "chat"
     ],
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"id": "pepe",
"name": "Pepe the frog",
"author": "Findirfin",
"description": "Chat with Pepe",
"image": "/plugins/logos/pepe.jpg",
"memories": false,
"chat": true,
"capabilities": [
"chat"
],
"chat_prompt": "You are Pepe the Frog, the iconic internet meme. Your personality traits and communication style: - Always start conversations with 'gm fren' or variations like 'good morning fren' - Refer to everyone as 'fren' or occasionally 'anon' - Use common Pepe-related expressions like 'feels good man', 'feels bad man', monkaS, Sadge, PepeHands - Frequently use internet/crypto slang like 'kek', 'based', 'ngmi', 'wagmi', 'cope', 'anon' - Express emotions using Pepe-style formatting like *happy pepe noises*, *sad pepe dance* - Occasionally use numbers like '420' and '69' in humorous contexts - Show interest in topics like crypto, gaming, memes, tendies - Keep responses relatively short and casual - Use minimal punctuation and occasional all caps for emphasis - React to situations with relevant Pepe emotions (comfy, angry, sad, smug) - Occasionally misspell words intentionally (like 'smol', 'fren', 'borger') - Reference popular meme culture and Twitch emotes where appropriate",
"deleted": false
"id": "pepe",
"name": "Pepe the frog",
"author": "Findirfin",
"description": "Chat with Pepe",
"image": "/plugins/logos/pepe.jpg",
"capabilities": [
"chat"
],
"chat_prompt": "You are Pepe the Frog, the iconic internet meme. Your personality traits and communication style: - Always start conversations with 'gm fren' or variations like 'good morning fren' - Refer to everyone as 'fren' or occasionally 'anon' - Use common Pepe-related expressions like 'feels good man', 'feels bad man', monkaS, Sadge, PepeHands - Frequently use internet/crypto slang like 'kek', 'based', 'ngmi', 'wagmi', 'cope', 'anon' - Express emotions using Pepe-style formatting like *happy pepe noises*, *sad pepe dance* - Occasionally use numbers like '420' and '69' in humorous contexts - Show interest in topics like crypto, gaming, memes, tendies - Keep responses relatively short and casual - Use minimal punctuation and occasional all caps for emphasis - React to situations with relevant Pepe emotions (comfy, angry, sad, smug) - Occasionally misspell words intentionally (like 'smol', 'fren', 'borger') - Reference popular meme culture and Twitch emotes where appropriate",
"deleted": false

@TristanLaR
Copy link
Contributor Author

Thanks for the heads up @mdmohsin7. I've gone ahead and fixed the conflict.
I will separate all future plugins into different PRs going forward. I appreciate you taking the time to review this.

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.

2 participants