Clemylia / Blinnk-Recipe

huggingface.co
Total runs: 36
24-hour runs: 0
7-day runs: 2
30-day runs: 24
Model's Last Updated: November 15 2025
text-generation

Introduction of Blinnk-Recipe

Model Details of Blinnk-Recipe

🤖 Blinnk-Recipe : Solution de Fusion d'Envies Alimentaires

Blinnk-Recipe

Blinnk-Recipe est un modèle d'IA de fusion de séquences (Seq2Seq) qui transforme deux désirs ou ingrédients exprimés en langage naturel en une solution culinaire unique et pertinente. Ce modèle, développé et publié par Clemylia, est une démonstration concrète de l'application de l'IA à la créativité alimentaire.


🎯 Objectif du Modèle et Cas d'Usage

L'objectif de Blinnk-Recipe est d'agir comme un moteur de suggestion pour les combinaisons d'aliments.

  • Entrée ( question ) : Une phrase décrivant deux envies ou ingrédients (ex: "J'ai envie de pommes et de cannelle").
  • Sortie ( reponse ) : Un plat final combinant ces éléments (ex: "Tarte aux pommes a la cannelle").
  • Cas d'Usage : Intégration dans des applications de recettes, des chatbots culinaires ou des générateurs d'idées de snacks.

⚙️ Architecture Technique (From Scratch)

Ce modèle est une implémentation complète de l'architecture Sequence-to-Sequence développée from scratch en PyTorch, garantissant une maîtrise totale de la chaîne de traitement.

Composant Description Implémentation de Base
EncoderRNN Convertit la séquence d'entrée en un vecteur de contexte. Gated Recurrent Unit (GRU)
DecoderRNN Génère la séquence de sortie mot par mot à partir de ce contexte. Gated Recurrent Unit (GRU)
Tokenizer Vocabulaire généré à partir du jeu de données pour l'encodage et le décodage. Vocabulaire simple
Décodage Utilise le Greedy Decoding avec une pénalisation des répétitions pour améliorer la cohérence. Inférence optimisée

📊 Jeu de Données et Entraînement

Le modèle Blinnk-Recipe a été entraîné sur un jeu de données spécifique visant à capturer une grande variété de fusions alimentaires.

  • Dataset Source : Clemylia/Solution-banane (Hugging Face)
  • Taille : $\approx 110$ exemples de paires question/réponse.
  • Entraînement : Entraînement intensif sur un grand nombre d'époques pour compenser la taille réduite du jeu de données, assurant la convergence des poids.

👩‍💻 Guide d'Utilisation et de Déploiement

Le modèle est publié et prêt à être téléchargé et utilisé via la librairie huggingface_hub .

1. Installation des Dépendances
pip install torch huggingface-hub

* Exemple de codes d'inférence :

import torch
import torch.nn as nn
import json
import os
from huggingface_hub import snapshot_download

# --- 1. CONFIGURATION GLOBALE ---
DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# Nom du dépôt Hugging Face pour le téléchargement
HUGGINGFACE_REPO = "Clemylia/Blinnk-Recipe"

# Définition des indices spéciaux (DOIVENT ÊTRE IDENTIQUES À L'ENTRAÎNEMENT)
SOS_token = 0  # Start Of Sequence
EOS_token = 1  # End Of Sequence
PAD_token = 2  # Padding Token

# --- 2. CLASSES DE MODÈLE (DOIVENT ÊTRE IDENTIQUES À L'ENTRAÎNEMENT) ---

class EncoderRNN(nn.Module):
    """Encodeur GRU standard."""
    def __init__(self, input_size, hidden_size, embedding_dim=256):
        super(EncoderRNN, self).__init__()
        self.hidden_size = hidden_size
        self.embedding = nn.Embedding(input_size, embedding_dim)
        self.gru = nn.GRU(embedding_dim, hidden_size, batch_first=True)

    def forward(self, input_seq, hidden):
        embedded = self.embedding(input_seq)
        output, hidden = self.gru(embedded, hidden)
        return output, hidden

    def initHidden(self, batch_size):
        return torch.zeros(1, batch_size, self.hidden_size, device=DEVICE)

class DecoderRNN(nn.Module):
    """Décodeur GRU standard."""
    def __init__(self, output_size, hidden_size, embedding_dim=256):
        super(DecoderRNN, self).__init__()
        self.hidden_size = hidden_size
        self.embedding = nn.Embedding(output_size, embedding_dim)
        self.gru = nn.GRU(embedding_dim, hidden_size, batch_first=True)
        self.out = nn.Linear(hidden_size, output_size)
        self.softmax = nn.LogSoftmax(dim=1)

    def forward(self, input, hidden):
        embedded = self.embedding(input)
        output, hidden = self.gru(embedded, hidden)
        output = self.out(output[:, 0, :])
        output = self.softmax(output) 
        return output, hidden

# --- 3. CLASSE TOKENIZER ---

class LoadedTokenizer:
    """Reconstruit le tokenizer et la configuration à partir de config.json."""
    def __init__(self, config_path):
        with open(config_path, 'r') as f:
            config = json.load(f)
        
        # Reconversion des clés de string à int
        self.index2word = {int(k): v for k, v in config['index2word'].items()}
        self.word2index = config['word2index']
        self.n_words = config['n_words']
        self.max_length = config['max_length']
        self.hidden_size = config['hidden_size']

    def encode(self, sentence, add_eos=True):
        """Convertit une phrase en une liste d'indices."""
        words = sentence.lower().split(' ')
        # Utilise PAD_token (2) pour les mots inconnus (UNK)
        indexes = [self.word2index.get(word, PAD_token) for word in words]
        if add_eos:
            indexes.append(EOS_token)
        return indexes

    def decode(self, indices):
        """Convertit une liste d'indices en une phrase."""
        words = [self.index2word.get(i) for i in indices if i not in [SOS_token, EOS_token, PAD_token] and i is not None]
        return ' '.join(words)

# --- 4. FONCTIONS DE CHARGEMENT ET D'INFÉRENCE ---

def load_blinnk_model_from_hf(repo_id):
    """Télécharge le modèle de Hugging Face et l'initialise."""
    print(f"Téléchargement des fichiers depuis Hugging Face : {repo_id}...")
    
    try:
        # Télécharge tous les fichiers du dépôt dans le cache local
        local_path = snapshot_download(repo_id=repo_id)
        print(f"Fichiers téléchargés dans : {local_path}")
        
    except Exception as e:
        print(f"❌ Échec du téléchargement. Veuillez vérifier le nom du dépôt ({repo_id}) et son statut public/privé.")
        raise e

    # Chargement du Tokenizer et de la Config
    tokenizer = LoadedTokenizer(os.path.join(local_path, "config.json"))
    
    # Initialisation des Modèles basés sur la config
    encoder = EncoderRNN(tokenizer.n_words, tokenizer.hidden_size).to(DEVICE)
    decoder = DecoderRNN(tokenizer.n_words, tokenizer.hidden_size).to(DEVICE)
    
    # Chargement des Poids
    encoder.load_state_dict(torch.load(os.path.join(local_path, "encoder.pth"), map_location=DEVICE))
    decoder.load_state_dict(torch.load(os.path.join(local_path, "decoder.pth"), map_location=DEVICE))
    
    encoder.eval()
    decoder.eval()
    
    print("✅ Modèle Blinnk chargé et prêt pour l'inférence.")
    return encoder, decoder, tokenizer

def evaluate(encoder, decoder, tokenizer, sentence, max_length):
    """Effectue l'inférence (génération) avec pénalisation des répétitions."""
    with torch.no_grad():
        input_indices = tokenizer.encode(sentence, add_eos=True)
        input_tensor = torch.tensor(input_indices, dtype=torch.long, device=DEVICE).unsqueeze(0)
        
        encoder_hidden = encoder.initHidden(1)
        _, encoder_hidden = encoder(input_tensor, encoder_hidden)

        decoder_input = torch.tensor([[SOS_token]], device=DEVICE) 
        decoder_hidden = encoder_hidden

        decoded_words = []
        last_ni = -1

        for _ in range(max_length):
            decoder_output, decoder_hidden = decoder(
                decoder_input, decoder_hidden
            )
            
            # --- Pénalisation de la Répétition ---
            if last_ni != -1:
                 decoder_output[0, last_ni] = -float('inf') 

            # Sélectionner le mot avec la probabilité maximale (Greedy Decoding)
            topv, topi = decoder_output.data.topk(1)
            ni = topi.item()

            if ni == EOS_token:
                break
            elif ni == PAD_token:
                continue
            else:
                decoded_words.append(tokenizer.index2word.get(ni, '<UNK>'))

            last_ni = ni 
            decoder_input = torch.tensor([[ni]], device=DEVICE)

        return ' '.join(decoded_words)

# --- 5. EXÉCUTION PRINCIPALE ---

if __name__ == "__main__":
    
    # 1. Chargement du Modèle depuis Hugging Face
    try:
        encoder, decoder, tokenizer = load_blinnk_model_from_hf(HUGGINGFACE_REPO)
    except Exception as e:
        print(f"\n❌ Le modèle n'a pas pu être chargé. Veuillez vérifier la connexion Internet et le nom du dépôt : {e}")
        exit()

    # 2. Exemples de Test
    print("\n--- Tests d'Inférence ---")
    
    test_phrases = [
        "j'ai envie de Banane et de bonbons",
        "Je veux du chocolat et de la menthe",
        "Je veux des chips et du piment",
        "Je voudrais des œufs et du jambon",
        "J'ai envie de fraises et de lait",
        "Je veux des tacos et du poisson"
    ]
    
    max_len = tokenizer.max_length
    
    for sentence in test_phrases:
        prediction = evaluate(encoder, decoder, tokenizer, sentence, max_len)
        print(f"Question: '{sentence.ljust(40)}' -> Réponse Prédite: '{prediction}'")
        
    # Testez avec votre propre envie !
    my_test = input("\nEntrez votre propre envie (ex: 'je veux du poulet et du miel'): ")
    if my_test:
        prediction_perso = evaluate(encoder, decoder, tokenizer, my_test, max_len)
        print(f"Votre envie: '{my_test}' -> Prédiction: '{prediction_perso}'")

Runs of Clemylia Blinnk-Recipe on huggingface.co

36
Total runs
0
24-hour runs
0
3-day runs
2
7-day runs
24
30-day runs

More Information About Blinnk-Recipe huggingface.co Model

More Blinnk-Recipe license Visit here:

https://choosealicense.com/licenses/mit

Blinnk-Recipe huggingface.co

Blinnk-Recipe huggingface.co is an AI model on huggingface.co that provides Blinnk-Recipe's model effect (), which can be used instantly with this Clemylia Blinnk-Recipe model. huggingface.co supports a free trial of the Blinnk-Recipe model, and also provides paid use of the Blinnk-Recipe. Support call Blinnk-Recipe model through api, including Node.js, Python, http.

Blinnk-Recipe huggingface.co Url

https://huggingface.co/Clemylia/Blinnk-Recipe

Clemylia Blinnk-Recipe online free

Blinnk-Recipe huggingface.co is an online trial and call api platform, which integrates Blinnk-Recipe's modeling effects, including api services, and provides a free online trial of Blinnk-Recipe, you can try Blinnk-Recipe online for free by clicking the link below.

Clemylia Blinnk-Recipe online free url in huggingface.co:

https://huggingface.co/Clemylia/Blinnk-Recipe

Blinnk-Recipe install

Blinnk-Recipe is an open source model from GitHub that offers a free installation service, and any user can find Blinnk-Recipe on GitHub to install. At the same time, huggingface.co provides the effect of Blinnk-Recipe install, users can directly use Blinnk-Recipe installed effect in huggingface.co for debugging and trial. It also supports api for free installation.

Blinnk-Recipe install url in huggingface.co:

https://huggingface.co/Clemylia/Blinnk-Recipe

Url of Blinnk-Recipe

Blinnk-Recipe huggingface.co Url

Provider of Blinnk-Recipe huggingface.co

Clemylia
ORGANIZATIONS

Other API from Clemylia

huggingface.co

Total runs: 439
Run Growth: 79
Growth Rate: 18.00%
Updated:September 29 2025
huggingface.co

Total runs: 364
Run Growth: 41
Growth Rate: 11.26%
Updated:October 30 2025
huggingface.co

Total runs: 316
Run Growth: 316
Growth Rate: 100.00%
Updated:December 02 2025
huggingface.co

Total runs: 263
Run Growth: 263
Growth Rate: 100.00%
Updated:November 05 2025
huggingface.co

Total runs: 214
Run Growth: 214
Growth Rate: 100.00%
Updated:November 23 2025
huggingface.co

Total runs: 197
Run Growth: 28
Growth Rate: 14.21%
Updated:October 30 2025
huggingface.co

Total runs: 168
Run Growth: 23
Growth Rate: 13.69%
Updated:October 19 2025
huggingface.co

Total runs: 162
Run Growth: 162
Growth Rate: 100.00%
Updated:October 07 2025
huggingface.co

Total runs: 162
Run Growth: 86
Growth Rate: 53.09%
Updated:November 05 2025
huggingface.co

Total runs: 131
Run Growth: 13
Growth Rate: 9.92%
Updated:October 03 2025
huggingface.co

Total runs: 127
Run Growth: 127
Growth Rate: 100.00%
Updated:November 26 2025
huggingface.co

Total runs: 126
Run Growth: 126
Growth Rate: 100.00%
Updated:November 27 2025
huggingface.co

Total runs: 106
Run Growth: 50
Growth Rate: 47.17%
Updated:November 29 2025
huggingface.co

Total runs: 97
Run Growth: 97
Growth Rate: 100.00%
Updated:November 05 2025
huggingface.co

Total runs: 94
Run Growth: 94
Growth Rate: 100.00%
Updated:November 17 2025
huggingface.co

Total runs: 85
Run Growth: 31
Growth Rate: 36.47%
Updated:November 13 2025
huggingface.co

Total runs: 84
Run Growth: -80
Growth Rate: -95.24%
Updated:December 01 2025
huggingface.co

Total runs: 81
Run Growth: 81
Growth Rate: 100.00%
Updated:November 23 2025
huggingface.co

Total runs: 71
Run Growth: 71
Growth Rate: 100.00%
Updated:November 14 2025
huggingface.co

Total runs: 71
Run Growth: 71
Growth Rate: 100.00%
Updated:November 29 2025
huggingface.co

Total runs: 67
Run Growth: 67
Growth Rate: 100.00%
Updated:December 06 2025
huggingface.co

Total runs: 61
Run Growth: 16
Growth Rate: 26.23%
Updated:November 08 2025
huggingface.co

Total runs: 57
Run Growth: 57
Growth Rate: 100.00%
Updated:November 30 2025
huggingface.co

Total runs: 55
Run Growth: 5
Growth Rate: 9.09%
Updated:November 14 2025
huggingface.co

Total runs: 54
Run Growth: 5
Growth Rate: 9.26%
Updated:November 09 2025
huggingface.co

Total runs: 54
Run Growth: 54
Growth Rate: 100.00%
Updated:November 14 2025
huggingface.co

Total runs: 52
Run Growth: 52
Growth Rate: 100.00%
Updated:November 15 2025
huggingface.co

Total runs: 46
Run Growth: 46
Growth Rate: 100.00%
Updated:November 30 2025
huggingface.co

Total runs: 42
Run Growth: -5
Growth Rate: -11.90%
Updated:November 18 2025
huggingface.co

Total runs: 37
Run Growth: 37
Growth Rate: 100.00%
Updated:November 14 2025
huggingface.co

Total runs: 36
Run Growth: 5
Growth Rate: 13.89%
Updated:November 14 2025
huggingface.co

Total runs: 32
Run Growth: 3
Growth Rate: 9.38%
Updated:December 06 2025
huggingface.co

Total runs: 26
Run Growth: 26
Growth Rate: 100.00%
Updated:October 11 2025
huggingface.co

Total runs: 24
Run Growth: -29
Growth Rate: -120.83%
Updated:November 26 2025
huggingface.co

Total runs: 22
Run Growth: 5
Growth Rate: 22.73%
Updated:September 24 2025
huggingface.co

Total runs: 17
Run Growth: 8
Growth Rate: 47.06%
Updated:December 19 2025
huggingface.co

Total runs: 16
Run Growth: 3
Growth Rate: 18.75%
Updated:February 02 2026
huggingface.co

Total runs: 14
Run Growth: 1
Growth Rate: 7.14%
Updated:January 20 2026
huggingface.co

Total runs: 12
Run Growth: 6
Growth Rate: 50.00%
Updated:September 25 2025
huggingface.co

Total runs: 12
Run Growth: 3
Growth Rate: 25.00%
Updated:January 07 2026
huggingface.co

Total runs: 10
Run Growth: 0
Growth Rate: 0.00%
Updated:October 28 2025
huggingface.co

Total runs: 10
Run Growth: 2
Growth Rate: 20.00%
Updated:October 12 2025
huggingface.co

Total runs: 8
Run Growth: 2
Growth Rate: 25.00%
Updated:September 27 2025
huggingface.co

Total runs: 7
Run Growth: -36
Growth Rate: -514.29%
Updated:November 04 2025
huggingface.co

Total runs: 6
Run Growth: 0
Growth Rate: 0.00%
Updated:January 17 2026
huggingface.co

Total runs: 5
Run Growth: -136
Growth Rate: -2720.00%
Updated:October 18 2025
huggingface.co

Total runs: 3
Run Growth: 3
Growth Rate: 100.00%
Updated:December 14 2025
huggingface.co

Total runs: 3
Run Growth: 2
Growth Rate: 66.67%
Updated:November 29 2025
huggingface.co

Total runs: 3
Run Growth: -2
Growth Rate: -66.67%
Updated:December 13 2025
huggingface.co

Total runs: 2
Run Growth: -6
Growth Rate: -300.00%
Updated:January 17 2026
huggingface.co

Total runs: 2
Run Growth: -2
Growth Rate: -100.00%
Updated:January 24 2026