diff options
| author | sigoden <sigoden@gmail.com> | 2024-07-03 16:51:30 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-03 16:51:30 +0800 |
| commit | cce4fec108feb7c963c2394c4daf5bb2d0274b1b (patch) | |
| tree | f0510ef985bae0d647914137ab5e74b24f912b8c | |
| parent | e63441b1e4139007a244a8f419cda73368b11ec7 (diff) | |
| download | aichat-cce4fec108feb7c963c2394c4daf5bb2d0274b1b.tar.gz | |
refactor: update config.example.yaml and readme, fix typos (#682)
| -rw-r--r-- | README.md | 8 | ||||
| -rw-r--r-- | config.example.yaml | 30 | ||||
| -rw-r--r-- | src/rag/loader.rs | 2 | ||||
| -rw-r--r-- | src/rag/mod.rs | 6 |
4 files changed, 23 insertions, 23 deletions
@@ -80,7 +80,7 @@ With sessions, AIChat conducts context-aware conversations.  -### Retrieval-Augmented Generation (RAG) +### RAG Seamlessly integrates document interactions into your chat experience. @@ -92,13 +92,13 @@ Function calling supercharges LLMs by connecting them to external tools and data We have created a new repository [https://github.com/sigoden/llm-functions](https://github.com/sigoden/llm-functions) to help you make the most of this feature. -#### Tool Use +#### Tool Here's a glimpse of How to use the tools. - + -#### AI Agent +#### Agent Agent = Prompt (Role) + Tools (Function Callings) + Knowndge (RAG). It's also known as OpenAI's GPTs. diff --git a/config.example.yaml b/config.example.yaml index d45a86c..45efb65 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -16,7 +16,7 @@ repl_prelude: null # Overrides the `prelude` setting specifically agent_prelude: null # Set a session to use when starting a agent. (e.g. temp, default) # ---- session ---- -# Controls the persistence of the session, if null, asking the user +# Controls the persistence of the session. if true, auto save; if false, not save; if null, asking the user save_session: null # Compress session when token count reaches or exceeds this threshold compress_threshold: 4000 @@ -25,20 +25,9 @@ summarize_prompt: 'Summarize the discussion briefly in 200 words or less to use # Text prompt used for including the summary of the entire session summary_prompt: 'This is a summary of the chat history as a recap: ' -# Define document loaders to control how RAG and `.file`/`--file` load files of specific formats. -document_loaders: - # You can add custom loaders using the following syntax: - # <file-extension>: <command-to-load-the-file> - # Note: Use `$1` for input file and `$2` for output file. If `$2` is omitted, use stdout as output. - pdf: 'pdftotext $1 -' # Load .pdf file, see https://poppler.freedesktop.org - docx: 'pandoc --to plain $1' # Load .docx file - # xlsx: 'ssconvert $1 $2' # Load .xlsx file - # html: 'pandoc --to plain $1' # Load .html file - recursive_url: 'rag-crawler $1 $2' # Load websites, see https://github.com/sigoden/rag-crawler - # ---- function-calling & agent ---- -# Controls the function calling feature. For setup instructions, visit https://github.com/sigoden/llm-functions -function_calling: true +# Visit https://github.com/sigoden/llm-functions for setup instructions +function_calling: true # Enables or disables function calling (Globally). # Regex for seletecting dangerous functions # User confirmation is required when executing these functions # e.g. 'execute_command|execute_js_code' 'execute_.*' @@ -76,6 +65,17 @@ rag_template: | Given the context information, answer the query. Query: __INPUT__ +# Define document loaders to control how RAG and `.file`/`--file` load files of specific formats. +document_loaders: + # You can add custom loaders using the following syntax: + # <file-extension>: <command-to-load-the-file> + # Note: Use `$1` for input file and `$2` for output file. If `$2` is omitted, use stdout as output. + pdf: 'pdftotext $1 -' # Load .pdf file, see https://poppler.freedesktop.org + docx: 'pandoc --to plain $1' # Load .docx file + # xlsx: 'ssconvert $1 $2' # Load .xlsx file + # html: 'pandoc --to plain $1' # Load .html file + recursive_url: 'rag-crawler $1 $2' # Load websites, see https://github.com/sigoden/rag-crawler + # ---- apperence ---- highlight: true # Controls syntax highlighting light_theme: false # Activates a light color theme when true. env: AICHAT_LIGHT_THEME @@ -98,7 +98,7 @@ clients: # - name: xxxx # Embedding model # type: embedding # max_input_tokens: 2048 - # default_chunk_size: 2000 + # default_chunk_size: 1500 # max_batch_size: 100 # - name: xxxx # Reranker model # type: reranker diff --git a/src/rag/loader.rs b/src/rag/loader.rs index 37fa803..7fa1fd6 100644 --- a/src/rag/loader.rs +++ b/src/rag/loader.rs @@ -7,7 +7,7 @@ use std::{collections::HashMap, path::Path}; pub const EXTENSION_METADATA: &str = "__extension__"; pub const PATH_METADATA: &str = "__path__"; -pub async fn load_recrusive_url( +pub async fn load_recursive_url( loaders: &HashMap<String, String>, path: &str, ) -> Result<Vec<(String, RagMetadata)>> { diff --git a/src/rag/mod.rs b/src/rag/mod.rs index e2f6ddd..3e7eda5 100644 --- a/src/rag/mod.rs +++ b/src/rag/mod.rs @@ -276,7 +276,7 @@ impl Rag { println!("Load {path} [{}/{paths_len}]", index + 1); if Self::is_url_path(path) { if let Some(path) = path.strip_suffix("**") { - files.extend(load_recrusive_url(&loaders, path).await?); + files.extend(load_recursive_url(&loaders, path).await?); } else { files.push(load_url(&loaders, path).await?); } @@ -326,11 +326,11 @@ impl Rag { "<document_metadata>\npath: {path}\n{metadata}</document_metadata>\n\n" )); let document = RagDocument::new(contents); - let splitted_documents = splitter.split_documents(&[document], &split_options); + let split_documents = splitter.split_documents(&[document], &split_options); rag_files.push(RagFile { hash: hash.clone(), path, - documents: splitted_documents, + documents: split_documents, }); } |
