readme upd
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user