BBloomFjord
Espace de développement avec IA

Appartenance probabiliste de Bloom

Stockez des clés de 1024 octets maximum dans un filtre Bloom de un à 8192 bits.

● ● ●BloomFjord●
Méthodes de travail · Appartenance probabiliste de Bloom ×
from hashlib import sha256

class Bloom:
    def __init__(self, width):
        if type(width) is not int or not 1 <= width <= 8192:
            raise ValueError("width.range")
        self.width, self.bits = width, 0
    def positions(self, key):
        if not isinstance(key, bytes) or len(key) > 1024:
            raise ValueError("key.bytes")
        digest = sha256(key).digest()
        return [int.from_bytes(digest[i:i+4], "big") % self.width
                for i in (0, 4, 8, 12)]
    def add(self, key):
        for position in self.positions(key):
            self.bits |= 1 << position
    def maybe_contains(self, key):
        return all(self.bits & (1 << p) for p in self.positions(key))
✳Stockez des clés de 1024 octets maximum dans un filtre Bloom de un à 8192 bits.
✓ ModificationsVérifiez avant d’appliquer ↗
Illustration de l’espace de travail
Projet
Vérifiez répétition d’insertion et clés insérées, en montrant qu’un résultat positif peut être faux et ne prouve pas l’appartenance.
Vérifiez avant d’appliquer
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Modèles
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
Méthodes de travail

Appartenance probabiliste de Bloom

Méthodes de travail ↗
Méthodes de travail
from hashlib import sha256

class Bloom:
    def __init__(self, width):
        if type(width) is not int or not 1 <= width <= 8192:
            raise ValueError("width.range")
        self.width, self.bits = width, 0
    def positions(self, key):
        if not isinstance(key, bytes) or len(key) > 1024:
            raise ValueError("key.bytes")
        digest = sha256(key).digest()
        return [int.from_bytes(digest[i:i+4], "big") % self.width
                for i in (0, 4, 8, 12)]
    def add(self, key):
        for position in self.positions(key):
            self.bits |= 1 << position
    def maybe_contains(self, key):
        return all(self.bits & (1 << p) for p in self.positions(key))
Espace de développement avec IA

Évitez que des résultats incertains deviennent des décisions certaines

Une vérification préliminaire rapide peut devenir un bogue si l’appelant traite sa réponse comme définitive. BloomFjord est un espace de programmation avec IA pour Windows où examiner cette frontière avec un modèle connecté. Apportez la structure de données et le code consommateur à la conversation du projet, puis énoncez les preuves nécessaires à l’application avant d’agir.

Comme tâche concrète, demandez à l’assistant d’examiner un filtre d’appartenance de Bloom utilisé avant une recherche faisant autorité. Décrivez ce que l’appelant doit faire après une correspondance possible et après une absence certaine. Demandez une proposition préservant cette distinction dans les noms, les branches et les tests, plutôt que de vous appuyer sur un commentaire à côté d’un booléen ambigu.

Examinez l’intégration avec des cas de test contrôlés. Incluez des clés insérées et des clés absentes, et vérifiez qu’une correspondance candidate suit toujours le chemin de confirmation requis. Examinez les hypothèses de validation et de configuration avant d’accepter des modifications de largeur ou de hachage. Exécutez les tests du projet pour établir le comportement nécessaire au lieu de traiter le filtre comme une garantie d’appartenance exacte.

BloomFjord prend en charge les connexions à des points de terminaison compatibles OpenAI ou Anthropic. Un modèle d’IA ablaté peut être sélectionné si votre fournisseur en propose un, le contexte, les outils pris en charge et les restrictions étant déterminés par cette configuration. L’espace de travail permet de discuter et d’examiner la proposition tandis que le contrat applicatif guide votre décision finale.

Intégrer un contrôle préliminaire d’appartenance

Que doit-il se passer après une correspondance possible ?

Suivez le chemin de confirmation faisant autorité de l’application lorsque l’appartenance exacte compte. Demandez à l’assistant de montrer cette branche dans l’appelant. Un résultat probabiliste ne doit pas devenir silencieusement une autorisation de sauter la vérification ou de considérer un enregistrement comme confirmé.

Un test de clé absente prouve-t-il l’absence de faux positifs ?

Non. Il vérifie ce cas, pas toutes les clés possibles. Utilisez les tests pour vérifier l’intégration et préserver l’incertitude documentée. Évitez de changer le nom de l’API ou la logique de l’appelant de façon à suggérer une appartenance exacte.

Pourquoi examiner le codage des clés avec le filtre ?

Les insertions et les recherches doivent représenter uniformément la même clé logique. Incluez le code convertissant les valeurs applicatives en octets et examinez les différences de normalisation ou de sérialisation avant de modifier l’implémentation d’appartenance elle-même.

Faut-il changer la largeur du filtre pendant une correction de l’appelant ?

Séparez les changements de configuration sauf s’ils sont nécessaires au problème signalé. Ils peuvent modifier le comportement du filtre et son usage des ressources. Demandez une explication et des vérifications appropriées plutôt que d’accepter une nouvelle largeur comme amélioration accessoire.

Télécharger pour Windows ↗

BloomFjord · Mis à jour 2026-10-25