From: Svjatoslav Agejenko Date: Mon, 1 Dec 2025 01:11:34 +0000 (+0200) Subject: Add example configurations, tasks, and skills for Älyverkko CLI X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=commitdiff_plain;h=34d73435b27772f17f9fb4187045ee43a3ad4eea;p=alyverkko-cli.git Add example configurations, tasks, and skills for Älyverkko CLI --- diff --git a/alyverkko-cli.yaml b/alyverkko-cli.yaml deleted file mode 100644 index f931d6e..0000000 --- a/alyverkko-cli.yaml +++ /dev/null @@ -1,16 +0,0 @@ -task_directory: "/home/user/AI/tasks" -models_directory: "/home/user/AI/models" -default_temperature: 0.7 -llama_cpp_dir_path: "/home/user/AI/llama.cpp/" -batch_thread_count: 10 -thread_count: 6 -skills_directory: "/home/user/.config/alyverkko-cli/skills" -models: - - alias: "default" - filesystem_path: "WizardLM-2-8x22B.Q5_K_M-00001-of-00005.gguf" - context_size_tokens: 64000 - end_of_text_marker: null - - alias: "mistral" - filesystem_path: "Mistral-Large-Instruct-2407.Q8_0.gguf" - context_size_tokens: 32768 - end_of_text_marker: null diff --git a/doc/examples/alyverkko-cli.yaml b/doc/examples/alyverkko-cli.yaml new file mode 100644 index 0000000..f931d6e --- /dev/null +++ b/doc/examples/alyverkko-cli.yaml @@ -0,0 +1,16 @@ +task_directory: "/home/user/AI/tasks" +models_directory: "/home/user/AI/models" +default_temperature: 0.7 +llama_cpp_dir_path: "/home/user/AI/llama.cpp/" +batch_thread_count: 10 +thread_count: 6 +skills_directory: "/home/user/.config/alyverkko-cli/skills" +models: + - alias: "default" + filesystem_path: "WizardLM-2-8x22B.Q5_K_M-00001-of-00005.gguf" + context_size_tokens: 64000 + end_of_text_marker: null + - alias: "mistral" + filesystem_path: "Mistral-Large-Instruct-2407.Q8_0.gguf" + context_size_tokens: 32768 + end_of_text_marker: null diff --git a/doc/examples/skills/default.yaml b/doc/examples/skills/default.yaml new file mode 100644 index 0000000..452b7f7 --- /dev/null +++ b/doc/examples/skills/default.yaml @@ -0,0 +1,12 @@ +prompt: | + <|im_start|>system + User will provide you with task that needs to be solved along with + existing relevant information. You must provide well reasoned solution. + <|im_end|> + <|im_start|>user + /think Solve following problem: + + + + <|im_end|> + <|im_start|>assistant diff --git a/doc/examples/skills/summary.yaml b/doc/examples/skills/summary.yaml new file mode 100644 index 0000000..6530a26 --- /dev/null +++ b/doc/examples/skills/summary.yaml @@ -0,0 +1,18 @@ +prompt: | + <|im_start|>system + + User is curious about the world and wants to understand how it + works. User is finding various news, blogs and stories on the internet + that look promising but user does not have time to read them in depth. + Your task is to analyze user provided story and write the summary that + preserves the most valuable events, facts, conclusions or take-aways + from it. + + <|im_end|> + <|im_start|>user + /think Summarize following: + + + + <|im_end|> + <|im_start|>assistant diff --git a/doc/examples/tasks/DONE: personality test.org b/doc/examples/tasks/DONE: personality test.org new file mode 100644 index 0000000..03981df --- /dev/null +++ b/doc/examples/tasks/DONE: personality test.org @@ -0,0 +1,42 @@ +DONE: skill=default model=default duration=2m +* USER: + +If numbers had personalities, +what kind of personality might the number 'zero' have? + +* ASSISTANT: + +1. Personality traits based on mathematical properties: + - Neutral and unchanging unless influenced + - Control over magnitude through multiplication + - Neither positive/negative (impartial) + - Foundational yet seemingly insignificant at times + +2. Symbolism and metaphors: + - Balance point between opposites + - Container for infinite possibilities (potential) + - Cycle of beginning/endpoints + - Quiet supporter behind the scenes + +3. Social dynamics: + - Values community/cooperation + - May feel undervalued but persists regardless + - Adaptable depending on situation/placement + +4. Philosophical/spiritual parallels: + - Emptiness equates to purity/clean slate + - Potential without action = dormant power + +5. Gender and self-identity: + - Ambiguous/genderless + +6. Emotional characteristics: + - Patient; allows time for events/actions to unfold + - Resilient when facing neglect or misunderstanding + - Persistent in fulfilling its purpose + +7. Behavioral tendencies: + - Fosters growth indirectly rather than directly contributing + measurable output + - Encourages exploration beyond limits via abstract reasoning + innovations diff --git a/doc/examples/tasks/personality test.org b/doc/examples/tasks/personality test.org new file mode 100644 index 0000000..bacf84c --- /dev/null +++ b/doc/examples/tasks/personality test.org @@ -0,0 +1,4 @@ +TOCOMPUTE: skill=default model=default priority=5 + +If numbers had personalities, +what kind of personality might the number 'zero' have? diff --git a/doc/index.org b/doc/index.org index 8e8338b..00c33ec 100644 --- a/doc/index.org +++ b/doc/index.org @@ -72,10 +72,11 @@ product. *Usage Procedure:* 1. User collects customer reviews in plain text format within the - configured mail directory. Lets say, about 150 kilobytes of reviews - per input file (this is dictated by AI model available context - size). -2. Each review file is prefixed with "TOCOMPUTE:". + configured tasks directory. Lets say, about 150 kilobytes of + reviews per input file (this is dictated by AI model available + context size). +2. Each review file starts with special "TOCOMPUTE:". (See: [[id:f2fd232d-5d2b-42fa-83db-76ab015d4df9][Task file + format]]) 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, @@ -93,11 +94,10 @@ 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. +1. Developer writes specifications in a text file within the tasks + directory. Text file also contains relevant parts of the program + source code and documentation. Älyverkko CLI [[id:be907a1f-e347-48d9-ab0c-6a556912dc49]["joinfiles" command]] + 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 @@ -106,8 +106,8 @@ specifications provided by the developer. 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. +Note: Large part of the [[https://www3.svjatoslav.eu/projects/alyverkko-cli/][Älyverkko CLI]] program code is written in such +a way by AI. *** Domain: Content Creation :PROPERTIES: @@ -116,16 +116,16 @@ by AI. [[https://www2.svjatoslav.eu/gitweb/?p=alyverkko-cli.git;a=blob;f=tools/i *Problem Statement:* -Draft an outline for a book on science fiction and improve its plot. +Draft an outline for a book on science fiction or 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. +2. *Älyverkko CLI* processes this description and generates more + detailed outline with suggested headings and suggests possible + improvements to the plot. Here is [[https://www.svjatoslav.eu/writing/Whispers%20in%20the%20Stream%20of%20Time.html][example sci-fi book]] that was written with the help of *Älyverkko CLI*. @@ -177,11 +177,11 @@ our AI task processor. *** 2. Building llama.cpp (Your AI Engine) -- *What*: Download and compile the llama.cpp project from GitHub. +- *What*: Download and compile the [[https://github.com/ggml-org/llama.cpp][llama.cpp]] project from GitHub. - *Why*: This is the actual "brain" that runs large language models on - *your CPU*. We build from source (rather than using prebuilt + *your CPU*. We build from source (rather than using rebuilt binaries) so it can optimize for /your specific CPU/ - squeezing out - *maximum performance from your hardware. + maximum performance from your hardware. *** 3. Adding AI Models (The Brains) - *What*: Download GGUF format model files (typically 4-30GB each) @@ -218,13 +218,13 @@ reasonable defaults - you're not starting from scratch. for different tasks. - *Why*: So you don't have to rewrite instructions every time ("be a coding assistant" vs "be a writing editor"). -- *Don't worry*: Sample skills come pre-configured - you can modify - them gradually. +- *Don't worry*: Start with sample skills ([[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/default.yaml][default.yaml]], + [[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/summary.yaml][summary.yaml]]) - you can modify them gradually. - *Key insight*: Skills let you create specialized AI personas without changing models. #+begin_quote -Example: Your =writer.yaml= skill might instruct the AI to "always +Idea: Your =writer.yaml= skill might instruct the AI to "always provide well-reasoned responses in academic tone" #+end_quote @@ -270,7 +270,7 @@ you get: You fill find that after the first few processed tasks, the initial setup effort feels worthwhile. You're not just getting another -chatbot - you're building a personal AI workstation tailored to your +chat bot - you're building a personal AI workstation tailored to your specific needs. The initial investment pays dividends every time you need serious AI power without compromise. @@ -501,6 +501,8 @@ the actual user prompt during execution. <|im_start|>assistant #+end_src +See more example skills: [[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/default.yaml][default.yaml]], [[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/skills/summary.yaml][summary.yaml]] + ** Starting process daemon Älyverkko CLI keeps continuously listening for and processing tasks @@ -552,6 +554,9 @@ facilities: * Usage ** Task file format +:PROPERTIES: +:ID: f2fd232d-5d2b-42fa-83db-76ab015d4df9 +:END: Task files follow a specific structure that begins with a header line: @@ -560,6 +565,14 @@ TOCOMPUTE: [parameters] [User prompt content] #+end_example +[[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/tasks/personality%20test.org][Example complete task file]]: +#+begin_example +TOCOMPUTE: skill=default model=default priority=5 + +If numbers had personalities, +what kind of personality might the number 'zero' have? +#+end_example + *** Task File Header Format The first line *must* begin with exactly =TOCOMPUTE:= followed by @@ -584,6 +597,54 @@ After AI processing completes, a new file is created with: : DONE: skill=writer model=default duration=5m : ... +[[https://www3.svjatoslav.eu/projects/alyverkko-cli/examples/tasks/DONE:%20personality%20test.org][Example DONE file]]: + +#+begin_example + DONE: skill=default model=default duration=2m + ,* USER: + + If numbers had personalities, + what kind of personality might the number 'zero' have? + + ,* ASSISTANT: + + 1. Personality traits based on mathematical properties: + - Neutral and unchanging unless influenced + - Control over magnitude through multiplication + - Neither positive/negative (impartial) + - Foundational yet seemingly insignificant at times + + 2. Symbolism and metaphors: + - Balance point between opposites + - Container for infinite possibilities (potential) + - Cycle of beginning/endpoints + - Quiet supporter behind the scenes + + 3. Social dynamics: + - Values community/cooperation + - May feel undervalued but persists regardless + - Adaptable depending on situation/placement + + 4. Philosophical/spiritual parallels: + - Emptiness equates to purity/clean slate + - Potential without action = dormant power + + 5. Gender and self-identity: + - Ambiguous/genderless + + 6. Emotional characteristics: + - Patient; allows time for events/actions to unfold + - Resilient when facing neglect or misunderstanding + - Persistent in fulfilling its purpose + + 7. Behavioral tendencies: + - Fosters growth indirectly rather than directly contributing + measurable output + - Encourages exploration beyond limits via abstract reasoning + innovations +#+end_example + + ** Task preparation :PROPERTIES: :ID: 4b7900e4-77c1-45e7-9c54-772d0d3892ea @@ -598,6 +659,9 @@ CLI mail directory using normal text editor. Once AI assignment is ready for processing, you should [[id:883d6e7c-60e0-422b-8c00-5cdc9dfec20d][initiate AI processing]] on that file. *** "joinfiles" command +:PROPERTIES: +:ID: be907a1f-e347-48d9-ab0c-6a556912dc49 +:END: *Note:* See also alternative solution with similar goal: [[https://github.com/aerugo/prelude][prelude]]. The *joinfiles* command is a utility for aggregating the contents of @@ -843,6 +907,12 @@ the top of the current buffer." * Feature ideas +- Document system requirements (minimum RAM, storage, OS) + +- Make glossary of concepts. (Task, Task directory, Skill, Model, etc) + +- Recommend some concrete AI models. + - In task directory ignore binary files, use joinfiles command as example how to ignore binary files. Perhaps extract plain text file detection into some utility class. diff --git a/tools/update web site b/tools/update web site index 5d3b485..ec23ca9 100755 --- a/tools/update web site +++ b/tools/update web site @@ -4,6 +4,7 @@ cd "${0%/*}"; if [ "$1" != "T" ]; then gnome-terminal -e "'$0' T"; exit; fi; cd .. # Build the project jar file and the apidocs. +export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64/ mvn clean package # Export org to html using emacs in batch mode