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
+70 -93
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.
* 🎙️ 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**
@@ -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.
> 🛠⚠️ **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.
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.
### 1️⃣ **Clone the repository and setup**
### **Clone the repository and setup**
```sh
git clone https://github.com/Fosowl/agenticSeek.git
@@ -52,73 +50,56 @@ cd agenticSeek
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
python3 -m venv agentic_seek_env
source agentic_seek_env/bin/activate
# On Windows: agentic_seek_env\Scripts\activate
SEARXNG_BASE_URL="http://127.0.0.1:8080"
REDIS_BASE_URL="redis://redis:6379/0"
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
./install.sh
sudo systemctl start docker
```
Or launch Docker Desktop from your applications menu if installed.
For windows:
- **On Windows:**
Start Docker Desktop from the Start menu.
You can verify Docker is running by executing:
```sh
./install.bat
docker info
```
**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`
If you see information about your Docker installation, it is running correctly.
---
@@ -153,13 +134,12 @@ provider_server_address = 127.0.0.1:11434
agent_name = Jarvis # name of your AI
recover_last_session = True # whenever to recover the previous session
save_session = True # whenever to remember the current session
speak = True # text to speech
listen = False # Speech to text, only for CLI
work_dir = /Users/mlg/Documents/workspace # The workspace for AgenticSeek.
speak = False # text to speech
listen = False # Speech to text, only for CLI, 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
[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
```
@@ -187,6 +167,8 @@ Next step: [Start services and run AgenticSeek](#Start-services-and-Run)
## 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.
```sh
@@ -212,9 +194,7 @@ Example: export `TOGETHER_API_KEY="xxxxx"`
| togetherAI | No | Use together AI 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 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.
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.
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
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:
- searxng
- redis (required by searxng)
- 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
sudo ./start_services.sh # MacOS
start ./start_services.cmd # Window
```
**Options 1:** Run with the CLI interface.
```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.
Then run : `python3 cli.py`
---
## 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.
@@ -359,6 +337,8 @@ Next step: [Start services and run AgenticSeek](#Start-services-and-Run)
## 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.
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
speak = False
listen = False
work_dir = /Users/mlg/Documents/ai_folder
jarvis_personality = False
languages = en zh
[BROWSER]
@@ -426,8 +405,6 @@ stealth_mode = 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.
- 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
)
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
echo Stopping containers...
docker stop $(docker ps -aq) >nul 2>&1