elie222 / inbox-zero

Open source email app to reach inbox zero fast.
https://www.getinboxzero.com
GNU Affero General Public License v3.0
2.17k stars 194 forks source link

AI prompt for each generated argument #191

Closed elie222 closed 1 week ago

elie222 commented 1 week ago

Summary by CodeRabbit

vercel[bot] commented 1 week ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
inbox-zero ✅ Ready (Inspect) Visit Preview Jun 25, 2024 3:11pm
coderabbitai[bot] commented 1 week ago

[!IMPORTANT]

Review skipped

More than 25% of the files skipped due to max files limit. The review is being skipped to prevent a low-quality review.

158 files out of 216 files are above the max files limit of 50. Please upgrade to Pro plan to get higher limits.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The updates involve significant modifications to the handling of AI-generated fields, validation schemas, and AI interaction patterns across various modules. New prompts for AI fields were introduced in the database schema, and changes were made to the rule management and action creation functions. Additionally, dependencies were updated, and some functionalities were rewritten to streamline AI response handling and enhance the overall system.

Changes

File(s) Change Summary
apps/web/app/(app)/automation/RuleForm.tsx Adjusted logic for AI-generated fields, refined UI, and modified imports and toggle behavior.
apps/web/app/(app)/automation/create/examples.tsx Updated action definitions in rule examples to use nested objects and modified imported constants.
apps/web/prisma/schema.prisma Added optional prompt fields for AI-generated fields in the Action model.
apps/web/utils/actions/rule.ts Refactored functions handling rule creation and updates to improve logic and error handling.
apps/web/utils/actions/validation.ts Replaced individual string schemas with a common zodField object schema for validation.
apps/web/utils/ai/choose-rule/ai-choose-args.ts Refactored AI argument handling and updated AI response functions.
apps/web/app/(app)/automation/rule/[ruleId]/page.tsx Updated action structure mapping to enhance rule representation with AI flags.
apps/web/app/api/ai/categorise/controller.ts Refined AI categorization logic and response handling mechanisms.
apps/web/app/api/ai/cold-email/controller.ts Simplified AI interaction with streamlined function calls and response handling.
apps/web/app/api/ai/compose-autocomplete/route.ts Refactored AI chat completion and response generation for compose-autocomplete functionality.
apps/web/app/api/ai/models/route.ts Replaced custom OpenAI initialization with direct instantiation.
apps/web/app/api/ai/summarise/controller.ts Simplified summarization function by updating parameter structure and including logic for saving summaries.
apps/web/app/api/ai/summarise/route.ts Streamlined the call to summarization function and updated response generation.
apps/web/app/api/google/webhook/group-rule.ts, apps/web/app/api/google/webhook/static-rule.ts Replaced getFunctionsFromRules with getActionsWithParameters to simplify AI argument determination logic.
apps/web/app/api/user/settings/validation.ts Updated model validation logic and removed unnecessary imports related to AI model checking.
apps/web/package.json Updated dependencies related to AI SDKs and removed deprecated packages.
apps/web/prisma/migrations/20240624075134_argument_prompt/migration.sql Added columns for AI-generated prompts in Action table of the database.
apps/web/utils/actions/ai-rule.ts Refined logic for handling user email in various functions and enhanced error handling.
apps/web/utils/ai/choose-rule/ai-choose-rule.ts, apps/web/utils/ai/choose-rule/choose.ts Updated AI response handling by renaming functions and adjusting parameters for better compatibility.
apps/web/utils/ai/group/create-group.ts, apps/web/utils/ai/rule/create-rule.ts Renamed key functions and streamlined AI interaction logic for creating groups and rules.
apps/web/utils/llms/index.ts Refactor to support improved AI provider and model handling, integrating new SDKs and updating AI completion functions.
apps/web/utils/redis/usage.ts Renamed fields in usage tracking to camelCase format for consistency with other parts of the codebase.
apps/web/utils/actions/categorize.ts Introduced a new function categorizeAction for categorizing email content using AI models.

Poem

In the code a rabbit hopped with cheer,
AI fields refined, their purpose clear.
Prompts were set, and schemas new,
Transforming rules with a vibrant hue.
Dependencies trimmed, old code replaced,
A streamlined automation, perfectly paced.
Through changes vast, the system grew,
A brighter path for tasks to pursue!


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 - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `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 generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@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 as 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. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration 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](https://docs.coderabbit.ai/guides/configure-coderabbit) 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](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.