Skip to main content
 

Petit test de Swirl-AI (https://github.com/swirlai/swirl-search/tree/main) -- Un meta-moteur de recherche libre avec de l'IA pour condenser.

Sa mise en place n'est pas aussi "simple" que fait paraitre la doc ( page utile: https://docs.swirl.today/Admin-Guide.html#configuring-the-swirl-environment / https://github.com/swirlai/swirl-search/blob/main/docs/DOCKER_BUILD.md#create-super-user-account )...

Du coup petit memento, tout d'abord l'installation :
```
# Setup
mkdir -p swirlai && cd swirlai && \
curl https://raw.githubusercontent.com/swirlai/swirl-search/main/docker-compose.yaml -o docker-compose.yaml && curl https://raw.githubusercontent.com/swirlai/swirl-search/main/.env.docker -o .env && echo 'SECRET_KEY=django-insecure-4*@!3sf)-t=jvww$27w#_gv9!18+8cj9(+e$#w8*#umln$jjf$' >> .env && echo "CSRF_TRUSTED_ORIGINS='http://localhost:8000'" >> .env && echo "MSAL_CB_PORT=8000" >> .env && echo "MSAL_HOST=localhost" >> .env && echo "OPENAI_API_KEY='GPT_KEY_HERE'" >> .env && docker compose pull && sed -i '/^\s*app:/a \ env_file: [.env]' docker-compose.yaml

# Change IP if use VPS
sed -i "s/SQL_HOST=localhost/127.0.0.1/g" .env && sed -i "s/localhost/$(curl ifconfig.me)/g" .env && echo http://$(curl ifconfig.me):8000
# Set your GPT API KEY
sed -i 's/GPT_KEY_HERE/REPLACEME/g' .env
```

Puis on le lance:
```
# Run
docker compose -p swirlai up -d && docker compose logs -f app | grep -w --line-buffered -m 1 "Listening on TCP address 0.0.0.0:8000" && echo "OK, Swirl is Up ! on :8000"
```

Et là, c'est le drame, impossible de se connecter et moteur vide... voici comment faire
```
# Création du compte admin ( admin/password n'existe plus dans les dernière version par défaut )
docker compose exec -it app bash .... puis...
python manage.py createsuperuser --email admin@admin.com --username admin
# On rajoute les PSE de base
python swirl_load.py SearchProviders/google_pse.json -u admin -p admin
```

Et enfin, on peut se connecter http://MYIP:8000/galaxy/ , user/pass de test défini avant dans mon cas (admin/admin) puis on peut faire des recherches sur les PSE de base, par exemple Linkedin.

Puis rien d'autre que ça?
En fait, il suffit de voir dans le dossier https://github.com/swirlai/swirl-search/tree/main/SearchProviders, quelques autres PSE sont fournis… Pour l'exemple, on va ajouter InternetArchive :

```
python swirl_load.py SearchProviders/internet_archive.json -u admin -p admin
```

Puis, on va l'activer, pour cela, on va sur la liste des search_provider de la page d'admin: http://MYIP:8000/admin/swirl/searchprovider/ puis on clique sur InternetArchive puis "Activate". Il suffira alors de se rendre de nouveau sur le front pour le trouver dans la liste déroulante notre nouveau PSE.

Bon nombre d'autres PSE, sont à customiser dans la partie admin, comme celui de ChatGPT qui nécessite de re-saisir son API_KEY, et surtout on peut créer ses propres PSE.

En connecteur, il y a de quoi faire même s'il manque mySQL et postgreSQL !! Ce qui est un vrai no-go de mon côté, surtout que c'est quand même un peu trop difficile d'accès pour un profane niveau UX, dommage :
- ChatGPT Query String
- HTTP/GET returning JSON
- HTTP/POST returning JSON
- Elasticsearch Query String
- OpenSearch Query String
- Google BigQuery
- Sqlite3
- M365 Outlook Messages
- M365 One Drive
- M365 Outlook Calendar
- M365 SharePoint Sites
- Microsoft Teams
- MongoDB
- Oracle
- Snowflake
- PineconeDB
- SnowflakeAI

Voilà il ne reste plus qu'à clean… le test est fini.

```
# Clean
docker-compose -p swirlai down --volumes
```