[GH-ISSUE #2782] [FR] : AI Writers #1199

Closed
opened 2026-03-23 20:46:21 +00:00 by mirror · 11 comments
Owner

Originally created by @yatendra2001 on GitHub (Jun 12, 2023).
Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/2782

Description

AI-powered writing assistant using Flutter and the GPT-4 model from OpenAI. The assistant, tentatively named "AI Writers", will assist users in generating and organizing content efficiently. This includes automatic to-do list generation, blog post drafting, and outline creation.

Similar to the notion AI, we can keep a button or just press space for "ask AI"
Screenshot 2023-06-12 at 2 25 55 PM


Timeline:

Week 1 (19/06/2023):

Tasks:

  • Research and Understand GPT-4
  • Understand appflowy coding practices.
  • Research if there are existing Rust libraries that wrap GPT-4

Milestones:

  1. Gain a comprehensive understanding of GPT-4 capabilities and functionalities
  2. Gain in depth understanding of appflowy best coding practices integrated in CI/CD.
  3. Determine if there are existing Rust libraries available for GPT-4 integration

Week 2 (26/06/2023):

Tasks:

  • Develop first working version of Rust wrapper for OpenAI API
  • Initiate exploration of AppFlowy backend system

Milestones:
4. Develop a basic Rust wrapper for OpenAI API with minimal functionality
5. Understand basic structure and components of AppFlowy backend

Week 3 (03/07/2023):

Tasks:

  • Gain deeper understanding of Creating Systems with OpenAI API
  • Gain deeper understanding of prompt engineering to develop applications

Milestone:
5. Build an end-to-end demo system using gpt-4 with proper prompting

Week 4 (10/07/2023):

Tasks:

  • Enhance Rust wrapper for OpenAI API with additional features
  • Delve deeper into the complexities of AppFlowy backend
  • Fix issue #2937 row banner overlay.

Milestones:
7. Upgrade Rust wrapper for OpenAI API with advanced features
8. Gain a deep understanding of AppFlowy backend, including data flows and dependencies
9. Raise a PR for issue. (raised pr: #3009)

Week 5 (17/07/2023):

Tasks:

  • Finalize application design and user interface
  • Start integration of GPT-4 Rust Wrapper with backend
  • Complete the integration of GPT-4 Rust Wrapper with backend
  • Begin development of auto-generating to-do list feature

Milestones:
10. Finalize application design and UI.
11. Begin the process of integrating GPT-4 Rust Wrapper with rust backend structure.
12. Successfully integrate GPT-4 Rust Wrapper with rust backend structure.
13. Initiate the development of the to-do list feature.

Week 6 (24/07/2023):

Tasks:

  • Continue development of the to-do list feature
  • Start development of the outline creation feature

Milestones:
14. Complete the development of the to-do list feature
15. Initiate the development of the outline creation feature


Midterm Valuation

  • Gained comprehensive understanding of GPT-4 and AppFlowy's coding practices.
  • Identified potential Rust libraries for GPT-4 integration.
  • Developed a basic Rust wrapper for OpenAI API.
  • Explored AppFlowy's backend structure.
  • Built a demo system using GPT-4 with proper prompting.
  • Enhanced Rust wrapper for OpenAI API with advanced features.
  • Delved deeper into AppFlowy's backend complexities.
  • Resolved a bug in AppFlowy (PR: #3009).
  • Finalised application design and UI (similar to Notion AI).
  • Initiated and completed GPT-4 Rust Wrapper integration with backend.
  • Began development of auto-generating to-do list feature and completed it.
  • Initiated development of outline creation feature.

Week 7 (31/07/2023):

Tasks:

  • Make Rust wrapper API code modular and scalable.
  • Write comprehensive tests for the API with 100% coverage.

Milestones:
16. Achieve modular and scalable Rust wrapper API code.
17. Completed tests for the API with 100% coverage.

Week 8 (07/08/2023):

Tasks:

  • Build the frontend Flutter interface.
  • Write thorough tests for the complete interface.
  • Gain a clear understanding of the backend-to-frontend integration flow.

Milestones:
18. Completed and polished frontend Flutter interface.
19. Full test coverage for the entire frontend interface.
20. Deep understanding of the integration flow from backend to frontend.

Week 9 (14/08/2023):

Tasks:

  • Address and resolve the Evernote importer issue (#2971).
  • Integrate the Rust wrapper API with the Flutter frontend interface.
  • Write comprehensive tests for the integrated system.

Milestones:
21. Successfully fixed the Evernote importer issue (#2971).
22. Successful integration of the Rust wrapper API with the Flutter frontend.
23. Completed tests for the integrated system.

Week 10 (21/08/2023):

Tasks:

  • Test the complete project end-to-end to ensure seamless functionality.
  • Address and fix any bugs or issues that may arise during testing.
  • Begin migration of current OpenAI features on Flutter side to using Rust wrapper

Milestones:
24. Complete the project documentation
25. Address and fix any bugs or issues that may arise during testing.
26. Initiate the migration of current OpenAI features to using Rust wrapper

Week 11 (28/08/2023):

Tasks:

  • Finalize migration of current OpenAI features on Flutter side to using Rust wrapper
  • Continue comprehensive testing and debugging of the application
  • Resolve any remaining issues identified during final testing

Milestones:
27. Successfully migrate all current OpenAI features to use Rust wrapper
28. Continue comprehensive testing and debugging of the entire application
29. Ensure all identified issues are resolved and application is fully functional

Week 12 (04/09/2023):

Tasks:

  • Finalize and review the entire project, ensuring all tasks are completed satisfactorily.
  • Prepare the application for live deployment
  • Document the complete project in a detailed blog, covering architecture, development process, and usage instructions.

Milestones:
30.Successful project review and preparation for final live deployment.
31. Successfully prepare the application for deployment, with all features working as expected
32. Completion of a comprehensive blog documenting the entire project.


Impact

The successful implementation of this project will provide a powerful tool for users who require assistance with various writing tasks. By automating these tasks, users can focus more on their ideas and less on the mechanical aspects of writing.

Given the increasing demand for AI-powered tools and the widespread use of mobile devices, this project can potentially benefit a wide range of users.


Additional Context

No response

Originally created by @yatendra2001 on GitHub (Jun 12, 2023). Original GitHub issue: https://github.com/AppFlowy-IO/AppFlowy/issues/2782 ### Description AI-powered writing assistant using Flutter and the GPT-4 model from OpenAI. The assistant, tentatively named "AI Writers", will assist users in generating and organizing content efficiently. This includes automatic to-do list generation, blog post drafting, and outline creation. Similar to the notion AI, we can keep a button or just press space for "ask AI" <img width="666" alt="Screenshot 2023-06-12 at 2 25 55 PM" src="https://github.com/AppFlowy-IO/AppFlowy/assets/62821607/5f12c9df-c18d-4b72-9658-925622ae24a1"> --- ### Timeline: **Week 1 (19/06/2023):** Tasks: - [x] Research and Understand GPT-4 - [x] Understand appflowy coding practices. - [x] Research if there are existing Rust libraries that wrap GPT-4 Milestones: 1. Gain a comprehensive understanding of GPT-4 capabilities and functionalities 2. Gain in depth understanding of appflowy best coding practices integrated in CI/CD. 3. Determine if there are existing Rust libraries available for GPT-4 integration **Week 2 (26/06/2023):** Tasks: - [x] Develop first working version of Rust wrapper for OpenAI API - [x] Initiate exploration of AppFlowy backend system Milestones: 4. Develop a basic Rust wrapper for OpenAI API with minimal functionality 5. Understand basic structure and components of AppFlowy backend **Week 3 (03/07/2023):** Tasks: - [x] Gain deeper understanding of Creating Systems with OpenAI API - [x] Gain deeper understanding of prompt engineering to develop applications Milestone: 5. Build an end-to-end demo system using gpt-4 with proper prompting **Week 4 (10/07/2023):** Tasks: - [x] Enhance Rust wrapper for OpenAI API with additional features - [x] Delve deeper into the complexities of AppFlowy backend - [x] Fix issue #2937 row banner overlay. Milestones: 7. Upgrade Rust wrapper for OpenAI API with advanced features 8. Gain a deep understanding of AppFlowy backend, including data flows and dependencies 9. Raise a PR for issue. (raised pr: #3009) **Week 5 (17/07/2023):** Tasks: - [x] Finalize application design and user interface - [x] Start integration of GPT-4 Rust Wrapper with backend - [x] Complete the integration of GPT-4 Rust Wrapper with backend - [x] Begin development of auto-generating to-do list feature Milestones: 10. Finalize application design and UI. 11. Begin the process of integrating GPT-4 Rust Wrapper with rust backend structure. 12. Successfully integrate GPT-4 Rust Wrapper with rust backend structure. 13. Initiate the development of the to-do list feature. **Week 6 (24/07/2023):** Tasks: - [x] Continue development of the to-do list feature - [x] Start development of the outline creation feature Milestones: 14. Complete the development of the to-do list feature 15. Initiate the development of the outline creation feature --- ### Midterm Valuation - Gained comprehensive understanding of GPT-4 and AppFlowy's coding practices. - Identified potential Rust libraries for GPT-4 integration. - Developed a basic Rust wrapper for OpenAI API. - Explored AppFlowy's backend structure. - Built a demo system using GPT-4 with proper prompting. - Enhanced Rust wrapper for OpenAI API with advanced features. - Delved deeper into AppFlowy's backend complexities. - Resolved a bug in AppFlowy (PR: #3009). - Finalised application design and UI (similar to Notion AI). - Initiated and completed GPT-4 Rust Wrapper integration with backend. - Began development of auto-generating to-do list feature and completed it. - Initiated development of outline creation feature. --- **Week 7 (31/07/2023):** Tasks: - [x] Make Rust wrapper API code modular and scalable. - [x] Write comprehensive tests for the API with 100% coverage. Milestones: 16. Achieve modular and scalable Rust wrapper API code. 17. Completed tests for the API with 100% coverage. **Week 8 (07/08/2023):** Tasks: - [ ] Build the frontend Flutter interface. - [ ] Write thorough tests for the complete interface. - [x] Gain a clear understanding of the backend-to-frontend integration flow. Milestones: 18. Completed and polished frontend Flutter interface. 19. Full test coverage for the entire frontend interface. 20. Deep understanding of the integration flow from backend to frontend. **Week 9 (14/08/2023):** Tasks: - [ ] Address and resolve the Evernote importer issue (#2971). - [ ] Integrate the Rust wrapper API with the Flutter frontend interface. - [ ] Write comprehensive tests for the integrated system. Milestones: 21. Successfully fixed the Evernote importer issue (#2971). 22. Successful integration of the Rust wrapper API with the Flutter frontend. 23. Completed tests for the integrated system. **Week 10 (21/08/2023):** Tasks: - [ ] Test the complete project end-to-end to ensure seamless functionality. - [ ] Address and fix any bugs or issues that may arise during testing. - [ ] Begin migration of current OpenAI features on Flutter side to using Rust wrapper Milestones: 24. Complete the project documentation 25. Address and fix any bugs or issues that may arise during testing. 26. Initiate the migration of current OpenAI features to using Rust wrapper **Week 11 (28/08/2023):** Tasks: - [ ] Finalize migration of current OpenAI features on Flutter side to using Rust wrapper - [ ] Continue comprehensive testing and debugging of the application - [ ] Resolve any remaining issues identified during final testing Milestones: 27. Successfully migrate all current OpenAI features to use Rust wrapper 28. Continue comprehensive testing and debugging of the entire application 29. Ensure all identified issues are resolved and application is fully functional **Week 12 (04/09/2023):** Tasks: - [ ] Finalize and review the entire project, ensuring all tasks are completed satisfactorily. - [ ] Prepare the application for live deployment - [ ] Document the complete project in a detailed blog, covering architecture, development process, and usage instructions. Milestones: 30.Successful project review and preparation for final live deployment. 31. Successfully prepare the application for deployment, with all features working as expected 32. Completion of a comprehensive blog documenting the entire project. --- ### Impact The successful implementation of this project will provide a powerful tool for users who require assistance with various writing tasks. By automating these tasks, users can focus more on their ideas and less on the mechanical aspects of writing. Given the increasing demand for AI-powered tools and the widespread use of mobile devices, this project can potentially benefit a wide range of users. --- ### Additional Context _No response_
mirror 2026-03-23 20:46:21 +00:00
Author
Owner

@yatendra2001 commented on GitHub (Jun 12, 2023):

@LucasXu0 Can you please review this?

<!-- gh-comment-id:1586927109 --> @yatendra2001 commented on GitHub (Jun 12, 2023): @LucasXu0 Can you please review this?
Author
Owner

@LucasXu0 commented on GitHub (Jun 12, 2023):

Hey, @yatendra2001. It looks good to me. By the way, please add one more task: migrate the current openAI features by using Rust wrapper too.

enum OpenAIRequestType {
  textCompletion,
  textEdit;

  Uri get uri {
    switch (this) {
      case OpenAIRequestType.textCompletion:
        return Uri.parse('https://api.openai.com/v1/completions');
      case OpenAIRequestType.textEdit:
        return Uri.parse('https://api.openai.com/v1/edits');
    }
  }
}
<!-- gh-comment-id:1587479703 --> @LucasXu0 commented on GitHub (Jun 12, 2023): Hey, @yatendra2001. It looks good to me. By the way, please add one more task: migrate the current openAI features by using Rust wrapper too. ```dart enum OpenAIRequestType { textCompletion, textEdit; Uri get uri { switch (this) { case OpenAIRequestType.textCompletion: return Uri.parse('https://api.openai.com/v1/completions'); case OpenAIRequestType.textEdit: return Uri.parse('https://api.openai.com/v1/edits'); } } } ```
Author
Owner

@LucasXu0 commented on GitHub (Jun 12, 2023):

We are currently using text completion and text edit APIs on the Flutter side. We should migrate them to Rust APIs once you finish this FR.

<!-- gh-comment-id:1587481948 --> @LucasXu0 commented on GitHub (Jun 12, 2023): We are currently using text completion and text edit APIs on the Flutter side. We should migrate them to Rust APIs once you finish this FR.
Author
Owner

@yatendra2001 commented on GitHub (Jun 12, 2023):

Hey, @yatendra2001. It looks good to me. By the way, please add one more task: migrate the current openAI features by using Rust wrapper too.

enum OpenAIRequestType {
  textCompletion,
  textEdit;

  Uri get uri {
    switch (this) {
      case OpenAIRequestType.textCompletion:
        return Uri.parse('https://api.openai.com/v1/completions');
      case OpenAIRequestType.textEdit:
        return Uri.parse('https://api.openai.com/v1/edits');
    }
  }
}

Yes makes a lot of sense.

We are currently using text completion and text edit APIs on the Flutter side. We should migrate them to Rust APIs once you finish this FR.

Yup added at the end. We'll keep adding subtasks of migration as we figure out to keep a record.

<!-- gh-comment-id:1587499594 --> @yatendra2001 commented on GitHub (Jun 12, 2023): > Hey, @yatendra2001. It looks good to me. By the way, please add one more task: migrate the current openAI features by using Rust wrapper too. > > ```dart > enum OpenAIRequestType { > textCompletion, > textEdit; > > Uri get uri { > switch (this) { > case OpenAIRequestType.textCompletion: > return Uri.parse('https://api.openai.com/v1/completions'); > case OpenAIRequestType.textEdit: > return Uri.parse('https://api.openai.com/v1/edits'); > } > } > } > ``` Yes makes a lot of sense. > We are currently using text completion and text edit APIs on the Flutter side. We should migrate them to Rust APIs once you finish this FR. Yup added at the end. We'll keep adding subtasks of migration as we figure out to keep a record.
Author
Owner

@annieappflowy commented on GitHub (Jun 13, 2023):

Related to https://github.com/AppFlowy-IO/AppFlowy/issues/2286

<!-- gh-comment-id:1588631947 --> @annieappflowy commented on GitHub (Jun 13, 2023): Related to https://github.com/AppFlowy-IO/AppFlowy/issues/2286
Author
Owner

@yatendra2001 commented on GitHub (Jun 17, 2023):

Hi @annieappflowy, @LucasXu0,

I'm looking forward to contributing to this project and am ready to start working on the issue at hand. However, I want to make sure I align with the selection process properly. Should I wait for the proposal to be accepted before proceeding, or is it acceptable to begin in advance? This is particularly important as I have outlined a timeline in my proposal.

<!-- gh-comment-id:1595703727 --> @yatendra2001 commented on GitHub (Jun 17, 2023): Hi @annieappflowy, @LucasXu0, I'm looking forward to contributing to this project and am ready to start working on the issue at hand. However, I want to make sure I align with the selection process properly. Should I wait for the proposal to be accepted before proceeding, or is it acceptable to begin in advance? This is particularly important as I have outlined a timeline in my proposal.
Author
Owner

@annieappflowy commented on GitHub (Jun 17, 2023):

I've sent an official letter to you! You may start working on your project. Congrats!

<!-- gh-comment-id:1595728618 --> @annieappflowy commented on GitHub (Jun 17, 2023): I've sent an official letter to you! You may start working on your project. Congrats!
Author
Owner

@yatendra2001 commented on GitHub (Jun 17, 2023):

Thanks a lot, @annieappflowy for accepting my proposal. You can bet I'll be bringing my A-game to this mentorship.

<!-- gh-comment-id:1595747051 --> @yatendra2001 commented on GitHub (Jun 17, 2023): Thanks a lot, @annieappflowy for accepting my proposal. You can bet I'll be bringing my A-game to this mentorship.
Author
Owner

@yatendra2001 commented on GitHub (Jun 26, 2023):

Hey @LucasXu0 , Should I create a new PR now to keep you updated of my tasks or once my first commit is ready to get merged??

<!-- gh-comment-id:1608451429 --> @yatendra2001 commented on GitHub (Jun 26, 2023): Hey @LucasXu0 , Should I create a new PR now to keep you updated of my tasks or once my first commit is ready to get merged??
Author
Owner

@LucasXu0 commented on GitHub (Jul 7, 2023):

@yatendra2001 No, we can communicate with them via video meeting, just like we did previously.

<!-- gh-comment-id:1624580552 --> @LucasXu0 commented on GitHub (Jul 7, 2023): @yatendra2001 No, we can communicate with them via video meeting, just like we did previously.
Author
Owner

@lybing commented on GitHub (Aug 2, 2023):

When the network is abnormal, keep circling and need to close the software to exit.
Snipaste_2023-08-02_23-10-07

<!-- gh-comment-id:1662427362 --> @lybing commented on GitHub (Aug 2, 2023): When the network is abnormal, keep circling and need to close the software to exit. ![Snipaste_2023-08-02_23-10-07](https://github.com/AppFlowy-IO/AppFlowy/assets/12037102/6c2fb270-87af-4f28-b7c5-7b3de5286dac)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AppFlowy-IO/AppFlowy#1199
No description provided.