Better description for use cases
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 26 May 2024 05:20:57 +0000 (08:20 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 26 May 2024 05:20:57 +0000 (08:20 +0300)
doc/index.org

index a1a0dae..290c028 100644 (file)
@@ -77,19 +77,9 @@ than real-time interaction.
 Here are some practical examples of tasks suited for the
 *Älyverkko CLI* application:
 
-- *Automated Report Generation*: The AI can analyze large datasets
-  overnight and produce comprehensive reports by morning, saving
-  countless hours of manual analysis.
-- *Code Development Support*: Developers could use the AI to generate
-  code snippets or even entire modules based on specifications
-  provided, which they can then integrate and refine during their
-  workday.
-- *Content Creation*: The AI can draft articles, create outlines for
-  books, or compile research notes, providing a solid foundation for
-  content creators to edit and finalize.
-- *Data Processing*: It can process and organize large volumes of
-  unstructured data, such as customer feedback or scientific
-  observations, into structured formats ready for human review.
+- [[id:e1b6aa9a-a27d-4019-8bd4-fceb0c606e23][Domain: Natural Language Processing (NLP)]]
+- [[id:f4c7d3e0-8c18-4123-a797-871ca73a7580][Domain: Code Generation]]
+- [[id:f38360ad-54f6-4f24-b299-f73a9faacabd][Domain: Content Creation]]
 
 In summary, the *Älyverkko CLI* application opens up a realm of
 possibilities for leveraging powerful AI in scenarios where immediate
@@ -98,7 +88,96 @@ is highly beneficial.
 
 Note: project is still in early stage.
 
+** Use cases
+*** Domain: Natural Language Processing (NLP)
+:PROPERTIES:
+:ID:       e1b6aa9a-a27d-4019-8bd4-fceb0c606e23
+:END:
+
+*Problem Statement:*
+
+Analyze a set of customer reviews to determine overall sentiment and
+extract key features that customers appreciate or dislike about a
+product.
+
+*Usage Procedure:*
+1. User collects customer reviews in plain text format within the
+   configured mail directory.
+2. Each review file is prefixed with "TOCOMPUTE:".
+3. The Älyverkko CLI application processes these files, generating
+   sentiment analysis results and feature extraction insights.
+4. Results are appended to the original files in org-mode syntax,
+   indicating AI responses.
+
+*** Domain: Code Generation
+:PROPERTIES:
+:ID:       f4c7d3e0-8c18-4123-a797-871ca73a7580
+:END:
+
+*Problem Statement:*
+
+Generate code snippets for a new software module based on detailed
+specifications provided by the developer.
+
+*Usage Procedure:*
+
+1. Developer writes specifications in a text file within the mail
+   directory, prefixed with "TOCOMPUTE:". Text file also contains
+   relevant parts of the program source code and
+   documentation. Älyverkko CLI *joinfiles* subcommand can be used to
+   facilitate such text file preparation.
+
+2. The Älyverkko CLI application processes this file and generates the
+   corresponding code snippets. The generated code is appended to the
+   original specifications file, organized using org-mode syntax.
+
+3. Developer can review proposed changes and then integrate them back
+   into original program source code.
+
+Note: Most of the [[https://www3.svjatoslav.eu/projects/alyverkko-cli/][Älyverkko CLI]] program code is written in such a way
+by AI. [[https://www2.svjatoslav.eu/gitweb/?p=alyverkko-cli.git;a=blob;f=tools/implement+idea;h=02b0ceb260693a6c9733f221e52a0e6c5fce0a36;hb=HEAD][This script]] is used to facilitate the process.
+
+*** Domain: Content Creation
+:PROPERTIES:
+:ID:       f38360ad-54f6-4f24-b299-f73a9faacabd
+:END:
+
+*Problem Statement:*
+
+Draft an outline for a book on science fiction and improve its plot.
+
+*Usage Procedure:*
+
+1. The book author writes a brief describing the outline of the plot
+   and his book main idea for the novel.
+
+2. Älyverkko CLI processes this description and generates an outline
+   with suggested headings and suggests possible improvements to the
+   plot.
+
+3. The AI-generated outline is appended to the original brief,
+   formatted using org-mode syntax.
+
 * Setup
+** Requirements
+*Operating System:*
+
+Älyverkko CLI is developed and tested on Debian 12 "Bookworm". It
+should work on any modern Linux distribution with minimal adjustments
+to the installation process.
+
+*Dependencies:*
+- Java Development Kit (JDK) 17 or higher
+- Apache Maven for building the project
+
+*Hardware Requirements:*
+- Modern multi-core CPU.
+- The more RAM you have, the smarter AI model you can use. For
+  example, at least 64 GB of RAM is needed to run pretty decent
+  [[https://huggingface.co/MaziyarPanahi/WizardLM-2-8x22B-GGUF/tree/main][WizardLM-2-8x22B AI model]].
+- Sufficient disk space to store large language models and
+  input/output data.
+
 ** Installation
 :PROPERTIES:
 :ID:       0b705a37-9b84-4cd5-878a-fedc9ab09b12
@@ -447,29 +526,44 @@ Ideas to be possibly implemented in the future:
   - What user did, when, where and how.
   - How and where did result appear.
 
-- Clarify operating system requirements.
-
-- Clarify hardware requirements.
+- Add a section detailing the architecture and design decisions behind
+  Älyverkko CLI.
 
 ** System operation
 
 - Implement CPU nice priority for inference processes to minimize the
   impact on system responsiveness during heavy computations.
+
 - Enable model selection per individual inference task, allowing for
   dynamic adjustment based on task requirements.
+
 - Allow specification of custom prompts for each inference task to
   tailor interactions precisely.
+
 - Consider implementing a plugin architecture to allow third-party
   developers to extend Älyverkko CLI's functionality with custom
   modules or integrations.
+
 - Possibility to easily pause and resume Älyverkko CLI without loosing
   in-progress computation. Unix process stop and continue signals
   could possibly be used.
+
 - Add support for speculative decoding to speed up inference.
+
 - Implement selftest command. It shall validate that configuration is
   correct and all is operational. If errors are found, it should tell
   what exactly is wrong and suggest how to fix it.
 
+- Explain how to monitor system performance and resource usage during
+  AI processing tasks.
+
+- Introduce a comprehensive suite of automated tests to ensure the
+  reliability and stability of new features before they are released.
+
+- Address potential security concerns, such as handling sensitive data
+  in AI processing tasks and securing communication with external
+  services.
+
 ** Data management
 
 - in maildir ignore binary files, use joinfiles command as example how
@@ -483,9 +577,13 @@ Ideas to be possibly implemented in the future:
 - Implement a fallback mechanism to use a system-wide configuration
   file located in `/etc/` if no user-specific configuration is found,
   enhancing out-of-the-box usability for new users.
+
 - Introduce optional logging of `llama.cpp` output to aid in debugging
   and performance monitoring without cluttering the standard output.
 
+- Implement a logging framework with configurable log levels to help
+  users debug issues without cluttering the standard output.
+
 ** Integration with external services
 
 - Add capabilities to connect with Jira, fetch content, and
@@ -517,7 +615,7 @@ Ideas to be possibly implemented in the future:
 - Implement image capture and processing features, enabling tasks that
   involve image analysis or content extraction from visual data.
 
-** Task queue management
+** Task preparation and queue management
 
 - Refactor the task queue mechanism to support:
   - Multiple task sources, including a REST API endpoint for
@@ -528,6 +626,10 @@ Ideas to be possibly implemented in the future:
   - Task priority assignments, ensuring that critical tasks are
     processed in a timely manner.
 
+- Offer guidance on preparing input files for batch processing,
+  including best practices for formatting data and structuring problem
+  statements.
+
 ** User interface development
 
 - Create a web-based UI to provide users with an interface for task