Vue normale

Reçu hier — 26 septembre 2025

L'API qui manquait à Ollama pour concurrencer ChatGPT est enfin là !!

Par :Korben
26 septembre 2025 à 16:40

Ce qui est super relou avec les IA qu’on peut utiliser en local, genre avec Ollama, c’est que si on lui demande des infos un peu trop récente, ça nous sort des vieux chiffres de 2023 avec la confiance d’un vendeur de voitures d’occasion. Bon bah ça, c’est fini puisqu’ Ollama vient de sortir une API de recherche web qui permet enfin à vos modèles locaux d’accéder à des infos fraîches dispo sur le net.

Woohoo \o/ !

Baptisée Ollama Web Search, cette API REST permet donc à vos modèles de faire des recherches sur le web en temps réel comme ça plus besoin de se contenter des données d’entraînement figées dans le temps. Selon la doc officielle , l’API fournit “les dernières informations du web pour réduire les hallucinations et améliorer la précision”. En gros, votre IA locale devient aussi à jour que ChatGPT, mais sans envoyer vos données perso à OpenAI.

Les modèles compatibles avec cette nouvelle fonctionnalité incluent qwen3, LLama, gpt-oss (la version open source d’OpenAI), deepseek-v3.1, et plein d’autres. Et d’après les premiers tests de la communauté , qwen3 et gpt-oss sont même plutôt doués pour exploiter cette fonctionnalité. Le modèle comprend qu’il lui manque une info, fait sa recherche, analyse les résultats et nous sort une réponse documentée !

C’est trop incrrrr ! Vous allez pouvoir booster vos scripts / bots / outils d’IA locale pour qu’ils puissent surveiller des choses dispo en ligne, les comparer, générer des résumés à partir de sites web, fact checker ou compléter des infos…etc.

Mais alors comment s’en servir ? Bon, on est vendredi soir et j’ai la flemme de tourner un tuto vidéo, donc même si je risque de détailler tout ça bientôt à mes Patreons d’amour , voici quand même quelques explications.

D’abord, il faut créer une clé API Ollama . La doc explique que vous avez un essai gratuit généreux pour commencer, mais s’il vous en faut plus, il faudra prendre un petit abonnement Ollama Cloud

Une fois votre clé en poche, exportez-la dans votre environnement comme ceci :

export OLLAMA_API_KEY="votre_clé_ici"

Le plus simple ensuite pour tester, c’est avec curl :

curl https://ollama.com/api/web_search \ --header "Authorization: Bearer $OLLAMA_API_KEY" \ -d '{ "query": "dernières vulnérabilités CVE janvier 2025" }'

Mais bon, soyons honnêtes, on va plutôt utiliser Python car c’est quand même plus cool ;-) . Voici donc un exemple de script basique qui compare une réponse avec et sans recherche web :

import ollama
from ollama import chat, web_search, web_fetch

model = "qwen3:4b"

# 1. Sans recherche web
response_classic = chat( # pas ollama.chat
 model=model,
 messages=[{
 "role": "user",
 "content": "Quelles sont les features de React 19?"
 }]
)
print("Sans recherche web:", response_classic.message.content[:500]) # .message.content

# 2. Avec recherche web
search_results = web_search("React 19 features dernières nouveautés")
print("Résultats:", search_results)

# 3. Avec outils
available_tools = {'web_search': web_search, 'web_fetch': web_fetch}
messages = [{
 "role": "user",
 "content": "Utilise la recherche web pour me dire les dernières features de React 19"
}]

response_with_tools = chat(
 model=model,
 messages=messages,
 tools=[web_search, web_fetch],
 think=True
)

# Accès aux tool_calls
if response_with_tools.message.tool_calls:
 for tool_call in response_with_tools.message.tool_calls:
 function_to_call = available_tools.get(tool_call.function.name)
 if function_to_call:
 args = tool_call.function.arguments
 result = function_to_call(**args)
 print(f"Outil utilisé: {tool_call.function.name}")
 print(f"Résultat: {str(result)[:500]}...")

print("Réponse finale:", response_with_tools.message.content)

Les performances varient ensuite selon les modèles. Qwen3:4b est parfait pour du temps réel avec environ 85 tokens/seconde. GPT-OSS:120b est plus lent mais donne des résultats de qualité idéaux pour de la production. Pour du dev local, je vous recommande qwen3:8b, c’est le bon compromis entre vitesse et intelligence.

Le truc cool, c’est que vous pouvez maintenant créer des agents spécialisés. Genre un agent DevOps qui surveille les CVE de vos dépendances, un agent Marketing qui analyse les tendances de votre secteur, ou un agent Support qui maintient une base de connaissances à jour.

Voici un exemple :

import ollama
from ollama import chat, web_search

class SecurityAgent:
 def __init__(self):
 self.model = "qwen3:4b"

 def check_vulnerabilities(self, technologies):
 rapport = "🛡️ RAPPORT SÉCURITÉ\n\n"

 for tech in technologies:
 # Recherche directe des CVE récentes
 results = web_search(f"{tech} CVE vulnerabilities 2025 critical")

 # Demande au modèle d'analyser
 response = chat(
 model=self.model,
 messages=[{
 "role": "user",
 "content": f"Résume les vulnérabilités critiques de {tech}: {results}"
 }]
 )

 rapport += f"### {tech}\n{response.message.content}\n\n"

 return rapport

# Utilisation
agent = SecurityAgent()
rapport = agent.check_vulnerabilities(["Node.js", "PostgreSQL", "Docker"])
print(rapport)

Maintenant, pour optimiser un peu tout ça et ne pas flamber votre quota API, voici quelques astuces assez classiques… D’abord, mettez en cache les résultats. Ensuite, soyez spécifique dans vos requêtes. Par exemple “React hooks” va chercher plein de trucs inutiles, alors que “React 19 nouveaux hooks useActionState” sera plus efficace.

On peut vraiment réduire la quantité de requêtes en étant malin sur le prompt engineering. Par exemple, au lieu de laisser le modèle chercher tout seul, guidez-le : “Vérifie uniquement sur la doc officielle de React” plutôt que “Cherche des infos sur React”.

Et comme Ollama supporte MCP Server, Cline, Codex et Goose, c’est royal car vous pouvez aussi brancher votre assistant IA directement dans votre IDE, Slack, ou Discord. Hé oui, vous allez enfin pouvoir coder un bot Discord qui va fact-checker automatiquement les affirmations douteuses et foireuses de vos collègues. Le rêve !

Pour aller plus loin, vous pouvez aussi combiner la recherche web avec le fetching de pages spécifiques. L’API web_fetch permet ainsi de récupérer le contenu d’une URL précise. Pratique pour analyser en profondeur une doc ou un article :

from ollama import web_search, web_fetch, chat

# 1. Recherche d'articles pertinents
search_results = web_search("React 19 vs Vue 3 comparison 2025")
top_url = search_results.results[0]['url'] # ou .url selon le type
print(f"📰 Article trouvé: {search_results.results[0]['title']}")

# 2. Récupération du contenu complet de la page
page_content = web_fetch(top_url)
print(f"📄 {len(page_content.content)} caractères récupérés")

# 3. Analyse approfondie du contenu
response = chat(
 model="qwen3:4b", # ou "gpt-oss" si disponible
 messages=[{
 "role": "user",
 "content": f"""
 Analyse cette comparaison technique:
 {page_content.content[:4000]}

 Donne-moi:
 1. Les points clés de chaque framework
 2. Le gagnant selon l'article
 3. Les cas d'usage recommandés
 """
 }]
)

print(f"\n🔍 Analyse:\n{response.message.content}")

Alors bien sûr, des fois la recherche retournera des trucs pas pertinents, surtout si votre requête est vague et de son côté, le modèle peut aussi mal interpréter les résultats s’il est trop petit. Mais bon, comparé à une IA qui vous sort que Windows 11 n’existe pas encore, on a fait quand même pas mal de chemin, vous ne trouvez pas ??

J’espère qu’à terme, Ollama ajoutera aussi le support de sources personnalisées car ce serait vraiment cool de pouvoir indexer par exemple sa propre doc ou ses propres emails pour y faire des recherches… Mais bon, en attendant cette nouvelle API permet enfin de contrebalancer ce problème des modèles pas à jour en terme de connaissances, et ça c’est déjà énorme !

A vous de jouer maintenant !

Source

Reçu avant avant-hier

Beacon API

30 août 2025 à 15:04

Je ne connaissais pas cette API des navigateurs qui permet d'envoyer une requête POST vers un serveur au moment où un onglet est fermé. La particularité est que la requête est gérée de manière asynchrone donc pas besoin d'attendre la réponse du serveur pour laisser l'onglet se fermer. C'est utilisé principalement pour tout ce qui est analytics mais j'entrevois d'autres cas d'utilisation.


Permalink

Beacon API

30 août 2025 à 15:04

Je ne connaissais pas cette API des navigateurs qui permet d'envoyer une requête POST vers un serveur au moment où un onglet est fermé. La particularité est que la requête est gérée de manière asynchrone donc pas besoin d'attendre la réponse du serveur pour laisser l'onglet se fermer. C'est utilisé principalement pour tout ce qui est analytics mais j'entrevois d'autres cas d'utilisation.


Permalink

Building a typed fetch in TypeScript with conditional types and infer - Piccalilli

7 août 2025 à 14:09

Exactement le genre d'usage de TypeScript que je déteste.

Ce qui semble être une bonne idée au départ devient un méli-mélo de complexité impossible à comprendre du premier coup et qui finalement apporte une valeur limitée et un faux sentiment de sécurité, du fait que le schéma JSON de l'API appelée peut changer du jour au lendemain.

Si vous avez la chance de consommer une API REST qui dispose d'une documentation OpenAPI exhaustive, alors je préfère l'usage de librairies type json-schema-to-ts pour inférer le type des requêtes et réponses à partir du schéma, et créer un petit adapteur (une fonction) qui prendra le type de la requête en argument (incluant body, query params, et headers si nécessaire) et qui retournera le type de la réponse.

Ça permet un bien meilleur contrôle selon moi, et le code n'en est que plus explicite.


Permalink

Building a typed fetch in TypeScript with conditional types and infer - Piccalilli

7 août 2025 à 14:09

Exactement le genre d'usage de TypeScript que je déteste.

Ce qui semble être une bonne idée au départ devient un méli-mélo de complexité impossible à comprendre du premier coup et qui finalement apporte une valeur limitée et un faux sentiment de sécurité, du fait que le schéma JSON de l'API appelée peut changer du jour au lendemain.

Si vous avez la chance de consommer une API REST qui dispose d'une documentation OpenAPI exhaustive, alors je préfère l'usage de librairies type json-schema-to-ts pour inférer le type des requêtes et réponses à partir du schéma, et créer un petit adapteur (une fonction) qui prendra le type de la requête en argument (incluant body, query params, et headers si nécessaire) et qui retournera le type de la réponse.

Ça permet un bien meilleur contrôle selon moi, et le code n'en est que plus explicite.


Permalink

GitHub - intruder-io/autoswagger: Autoswagger by Intruder - detect API auth weaknesses

31 juillet 2025 à 07:25

Un outil qui permet de trouver les failles d'APIs HTTP.

D'abord en cherchant les documentations type Swagger ou OpenAPI exposées publiquement par erreur, puis en "attaquant" chaque service pour trouver ceux qui ne sont pas suffisamment sécurisés où qui exposent des données sensibles.

L'idée est évidemment de l'utiliser sur vos propres APIs pour en renforcer la sécurité.

Via https://korben.info/autoswagger-outil-gratuit-trouve-failles-api.html


Permalink

GitHub - intruder-io/autoswagger: Autoswagger by Intruder - detect API auth weaknesses

31 juillet 2025 à 07:25

Un outil qui permet de trouver les failles d'APIs HTTP.

D'abord en cherchant les documentations type Swagger ou OpenAPI exposées publiquement par erreur, puis en "attaquant" chaque service pour trouver ceux qui ne sont pas suffisamment sécurisés où qui exposent des données sensibles.

L'idée est évidemment de l'utiliser sur vos propres APIs pour en renforcer la sécurité.

Via https://korben.info/autoswagger-outil-gratuit-trouve-failles-api.html


Permalink

Ajouter Ygg-API à Prowlarr

Par :Aerya
12 juillet 2025 à 17:31


Prowlarr permet de mixer plusieurs indexeurs (BitTorrent/Usenet) pour faire des recherches et téléchargements.
Il existe des indexeurs pour YGGtorrent mais ils sont souvent dans les choux du fait de la protection CloudFlare du site. Certes on trouve des outils annexes pour tenter de passer outre mais sinon on peut faire plus simple avec ygg-api (yggapi.eu dont le code n’est pas publié pour ne pas être contré).

Merci à Clemv95 pour le fichier de configuration. Je le poste aussi sur mon blog au cas où.



EDIT du 25.07.25 : Glira fait une remarque qu’il semble bon de transmettre aux néophytes ou à ceux pour qui YGG est quasi leur unique source. Je suppose cependant que la personne derrière ce site n’a absolument pas besoin de nos passkeys pour ce site où il est si facile de se faire un compte et du ratio (sans Joal), tout comme je présume qu’elle est sur les trackers privés francophones…


Attention ce pendant, cette solution envoie votre passkey sur le serveur de yggapi.eu. Et il est extrêmement facile pour lui de les enregistrer. Utilisez ce service que si vous êtes prêt à perdre votre compte ygg en cas d’exploitation de votre passkey.
Ou renseignez une fausse passkey, et modifiez le fichier torrent après téléchargement.



Dans l’installation de Prowlarr, aller dans le dossier Definitions et créer le dossier Custom.

2025 07 12 19 27 55 homebox Ásbrú connection manager (ubuntu)

Puis créer/mettre dedans le fichier ygg-api.yml et relancer Prowlarr. Ygg-API est maintenant disponible dans la liste des indexeurs.

2025 07 12 19 29 47 indexers prowlarr — mozilla firefox

Pour le configurer, il suffira d’ajouter une passkey. Trouvable sur son compte YGG ou dans l’URL d’annonce du tracker si vous avez déjà des .torrents de chargés.



Loading

❌