readme upd

This commit is contained in:
martin legrand
2025-06-02 22:25:22 +02:00
parent da6056e94c
commit e0fa4e6356
2 changed files with 87 additions and 97 deletions
+74 -97
View File
@@ -22,7 +22,7 @@
* 📋 Plans & Executes Complex Tasks - From trip planning to complex projects — it can split big tasks into steps and get things done using multiple AI agents. * 📋 Plans & Executes Complex Tasks - From trip planning to complex projects — it can split big tasks into steps and get things done using multiple AI agents.
* 🎙️ Voice-Enabled - Clean, fast, futuristic voice and speech to text allowing you to talk to it like it's your personal AI from a sci-fi movie * 🎙️ Voice-Enabled - Clean, fast, futuristic voice and speech to text allowing you to talk to it like it's your personal AI from a sci-fi movie. (In progress)
### **Demo** ### **Demo**
@@ -32,19 +32,17 @@ https://github.com/user-attachments/assets/b8ca60e9-7b3b-4533-840e-08f9ac426316
Disclaimer: This demo, including all the files that appear (e.g: CV_candidates.zip), are entirely fictional. We are not a corporation, we seek open-source contributors not candidates. Disclaimer: This demo, including all the files that appear (e.g: CV_candidates.zip), are entirely fictional. We are not a corporation, we seek open-source contributors not candidates.
> 🛠⚠️ **Active Work in Progress** Please note that Code/Bash is not dockerized yet but will be soon (see docker_deployement branch) - Do not deploy over network or production. > 🛠⚠️ **Active Work in Progress**
> 🙏 This project started as a side-project with zero roadmap and zero funding. It's grown way beyond what I expected by ending in GitHub Trending. Contributions, feedback, and patience are deeply appreciated. > 🙏 This project started as a side-project and has zero roadmap and zero funding. It's grown way beyond what I expected by ending in GitHub Trending. Contributions, feedback, and patience are deeply appreciated.
## Installation ## Prerequisites
Make sure you have chrome driver, docker and python3.10 installed. Make sure you have chrome driver, docker and python3.10 installed.
We highly advise you use exactly python3.10 for the setup. Dependencies error might happen otherwise.
For issues related to chrome driver, see the **Chromedriver** section. For issues related to chrome driver, see the **Chromedriver** section.
### 1️⃣ **Clone the repository and setup** ### **Clone the repository and setup**
```sh ```sh
git clone https://github.com/Fosowl/agenticSeek.git git clone https://github.com/Fosowl/agenticSeek.git
@@ -52,73 +50,56 @@ cd agenticSeek
mv .env.example .env mv .env.example .env
``` ```
### 2 **Create a virtual env** ### Change the .env file content
**API Key are totally optional for user who choose to run LLM locally. Which is the primary purpose of this project. Leave empty if you have sufficient hardware**
```sh ```sh
python3 -m venv agentic_seek_env SEARXNG_BASE_URL="http://127.0.0.1:8080"
source agentic_seek_env/bin/activate REDIS_BASE_URL="redis://redis:6379/0"
# On Windows: agentic_seek_env\Scripts\activate WORK_DIR="/Users/mlg/Documents/workspace_for_ai"
OLLAMA_PORT="11434"
LM_STUDIO_PORT="1234"
CUSTOM_ADDITIONAL_LLM_PORT="11435"
OPENAI_API_KEY='optional'
DEEPSEEK_API_KEY='optional'
OPENROUTER_API_KEY='optional'
TOGETHER_API_KEY='optional'
GOOGLE_API_KEY='optional'
ANTHROPIC_API_KEY='optional'
``` ```
### 3️⃣ **Install package** The following environment variables configure your application's connections and API keys.
Ensure Python, Docker and docker compose, and Google chrome are installed. Update the `.env` file with your own values as needed:
We recommend Python 3.10.0. - **SEARXNG_BASE_URL**: Leave unchanged
- **REDIS_BASE_URL**: Leave unchanged
- **WORK_DIR**: Path to your working directory on your local machine. AgenticSeek will be able to read and interact with these files.
- **OLLAMA_PORT**: Port number for the Ollama service.
- **LM_STUDIO_PORT**: Port number for the LM Studio service.
- **CUSTOM_ADDITIONAL_LLM_PORT**: Port for any additional custom LLM service.
All API key environment variables below are **optional**. You only need to provide them if you plan to use external APIs instead of running LLMs locally.
**Automatic Installation (recommended):** ### **Start Docker**
For Linux/Macos: Make sure Docker is installed and running on your system. You can start Docker using the following commands:
- **On Linux/macOS:**
Open a terminal and run:
```sh
sudo systemctl start docker
```
Or launch Docker Desktop from your applications menu if installed.
- **On Windows:**
Start Docker Desktop from the Start menu.
You can verify Docker is running by executing:
```sh ```sh
./install.sh docker info
``` ```
If you see information about your Docker installation, it is running correctly.
For windows:
```sh
./install.bat
```
**Manually:**
**Note: For any OS, ensure the ChromeDriver you install matches your installed Chrome version. Run `google-chrome --version`. See known issues if you have chrome >135**
- *Linux*:
Update Package List: `sudo apt update`
Install Dependencies: `sudo apt install -y alsa-utils portaudio19-dev python3-pyaudio libgtk-3-dev libnotify-dev libgconf-2-4 libnss3 libxss1`
Install ChromeDriver matching your Chrome browser version:
`sudo apt install -y chromium-chromedriver`
Install requirements: `pip3 install -r requirements.txt`
- *Macos*:
Update brew : `brew update`
Install chromedriver : `brew install --cask chromedriver`
Install portaudio: `brew install portaudio`
Upgrade pip : `python3 -m pip install --upgrade pip`
Upgrade wheel : : `pip3 install --upgrade setuptools wheel`
Install requirements: `pip3 install -r requirements.txt`
- *Windows*:
Install pyreadline3 `pip install pyreadline3`
Install portaudio manually (e.g., via vcpkg or prebuilt binaries) and then run: `pip install pyaudio`
Download and install chromedriver manually from: https://sites.google.com/chromium.org/driver/getting-started
Place chromedriver in a directory included in your PATH.
Install requirements: `pip3 install -r requirements.txt`
--- ---
@@ -153,13 +134,12 @@ provider_server_address = 127.0.0.1:11434
agent_name = Jarvis # name of your AI agent_name = Jarvis # name of your AI
recover_last_session = True # whenever to recover the previous session recover_last_session = True # whenever to recover the previous session
save_session = True # whenever to remember the current session save_session = True # whenever to remember the current session
speak = True # text to speech speak = False # text to speech
listen = False # Speech to text, only for CLI listen = False # Speech to text, only for CLI, experimental
work_dir = /Users/mlg/Documents/workspace # The workspace for AgenticSeek.
jarvis_personality = False # Whenever to use a more "Jarvis" like personality (experimental) jarvis_personality = False # Whenever to use a more "Jarvis" like personality (experimental)
languages = en zh # The list of languages, Text to speech will default to the first language on the list languages = en zh # The list of languages, Text to speech will default to the first language on the list
[BROWSER] [BROWSER]
headless_browser = True # Whenever to use headless browser, recommended only if you use web interface. headless_browser = True # leave unchanged unless using CLI on host.
stealth_mode = True # Use undetected selenium to reduce browser detection stealth_mode = True # Use undetected selenium to reduce browser detection
``` ```
@@ -187,6 +167,8 @@ Next step: [Start services and run AgenticSeek](#Start-services-and-Run)
## Setup to run with an API ## Setup to run with an API
**Running with an API is optional, see above to run locally.**
Set the desired provider in the `config.ini`. See below for a list of API providers. Set the desired provider in the `config.ini`. See below for a list of API providers.
```sh ```sh
@@ -212,9 +194,7 @@ Example: export `TOGETHER_API_KEY="xxxxx"`
| togetherAI | No | Use together AI API (non-private) | | togetherAI | No | Use together AI API (non-private) |
| google | No | Use google gemini API (non-private) | | google | No | Use google gemini API (non-private) |
*We advise against using gpt-4o or other closedAI models*, performance are poor for web browsing and task planning. Please note that coding/bash might fail with gemini, it seems to ignore our prompt for format to respect, which are optimized for deepseek r1. Model such are gpt-4o seem to perform poorly with our prompt as well.
Please also note that coding/bash might fail with gemini, it seems to ignore our prompt for format to respect, which are optimized for deepseek r1.
Next step: [Start services and run AgenticSeek](#Start-services-and-Run) Next step: [Start services and run AgenticSeek](#Start-services-and-Run)
@@ -226,44 +206,42 @@ Next step: [Start services and run AgenticSeek](#Start-services-and-Run)
## Start services and Run ## Start services and Run
Activate your python env if needed.
```sh
source agentic_seek_env/bin/activate
```
Start required services. This will start all services from the docker-compose.yml, including: Start required services. This will start all services from the docker-compose.yml, including:
- searxng - searxng
- redis (required by searxng) - redis (required by searxng)
- frontend - frontend
- backend (if using `full`)
```sh
sudo ./start_services.sh full # MacOS
start ./start_services.cmd full # Window
```
Go to `http://localhost:3000/` and you should see the web interface.
**Optional:** Run with the CLI interface:
To run with CLI interface you would have to install package on host:
```sh
./install.sh
./install.bat # windows
```
Start services:
```sh ```sh
sudo ./start_services.sh # MacOS sudo ./start_services.sh # MacOS
start ./start_services.cmd # Window start ./start_services.cmd # Window
``` ```
**Options 1:** Run with the CLI interface. Then run : `python3 cli.py`
```sh
python3 cli.py
```
We advise you set `headless_browser` to False in the config.ini for CLI mode.
**Options 2:** Run with the Web interface.
Start the backend.
```sh
python3 api.py
```
Go to `http://localhost:3000/` and you should see the web interface.
--- ---
## Usage ## Usage
Make sure the services are up and running with `./start_services.sh` and run the AgenticSeek with `python3 cli.py` for CLI mode or `python3 api.py` then go to `localhost:3000` for web interface. Make sure the services are up and running with `./start_services.sh full` and go to `localhost:3000` for web interface.
You can also use speech to text by setting `listen = True` in the config. Only for CLI mode. You can also use speech to text by setting `listen = True` in the config. Only for CLI mode.
@@ -359,6 +337,8 @@ Next step: [Start services and run AgenticSeek](#Start-services-and-Run)
## Speech to Text ## Speech to Text
Warning: speech to text only work in CLI mode at the moment.
Please note that currently speech to text only work in english. Please note that currently speech to text only work in english.
The speech-to-text functionality is disabled by default. To enable it, set the listen option to True in the config.ini file: The speech-to-text functionality is disabled by default. To enable it, set the listen option to True in the config.ini file:
@@ -398,7 +378,6 @@ recover_last_session = False
save_session = False save_session = False
speak = False speak = False
listen = False listen = False
work_dir = /Users/mlg/Documents/ai_folder
jarvis_personality = False jarvis_personality = False
languages = en zh languages = en zh
[BROWSER] [BROWSER]
@@ -426,8 +405,6 @@ stealth_mode = False
- listen -> listen to voice input (True) or not (False). - listen -> listen to voice input (True) or not (False).
- work_dir -> Folder the AI will have access to. eg: /Users/user/Documents/.
- jarvis_personality -> Uses a JARVIS-like personality (True) or not (False). This simply change the prompt file. - jarvis_personality -> Uses a JARVIS-like personality (True) or not (False). This simply change the prompt file.
- languages -> The list of supported language, needed for the llm router to work properly, avoid putting too many or too similar languages. - languages -> The list of supported language, needed for the llm router to work properly, avoid putting too many or too similar languages.
+13
View File
@@ -6,6 +6,19 @@ if "%1"=="full" (
echo Starting partial deployment... (backend run on host), use "full" to run all services in containers echo Starting partial deployment... (backend run on host), use "full" to run all services in containers
) )
where openssl >nul 2>&1
if %ERRORLEVEL% == 0 (
for /f %%i in ('openssl rand -hex 32') do set SEARXNG_SECRET_KEY=%%i
) else (
where python3 >nul 2>&1
if %ERRORLEVEL% == 0 (
for /f %%i in ('python3 -c "import secrets; print(secrets.token_hex(32))"') do set SEARXNG_SECRET_KEY=%%i
) else (
echo Error: Neither openssl nor python is available to generate a secret key.
exit /b 1
)
)
REM Stop all containers REM Stop all containers
echo Stopping containers... echo Stopping containers...
docker stop $(docker ps -aq) >nul 2>&1 docker stop $(docker ps -aq) >nul 2>&1