diff --git a/dataSources/PubMed/__pycache__/pubmedApi.cpython-313.pyc b/dataSources/PubMed/__pycache__/pubmedApi.cpython-313.pyc
index 4e650d570dcc84a349d496c81cb5c4b7a99fc2a2..9d5fa7641db53dafd2f09601a95d99a1e374299b 100644
Binary files a/dataSources/PubMed/__pycache__/pubmedApi.cpython-313.pyc and b/dataSources/PubMed/__pycache__/pubmedApi.cpython-313.pyc differ
diff --git a/dataSources/PubMed/pubmedApi.py b/dataSources/PubMed/pubmedApi.py
index df29e744902d2570583d88b851cfee7b602643aa..f694ee56ee8ccba67ea480bfc3bc34a3229d4c50 100644
--- a/dataSources/PubMed/pubmedApi.py
+++ b/dataSources/PubMed/pubmedApi.py
@@ -85,7 +85,7 @@ def getPubmedData(term, date_min, date_max, nb_items = -1, debug = False, store
                             for part in entrie["MedlineCitation"]["Article"]["Journal"]["Title"]:
                                 if "#text" in part:
                                     data["Title"] += part["#text"]
-                        elif isinstance(entrie["MedlineCitation"]["Article"]["Journal"]["Title"], object):
+                        elif not isinstance(entrie["MedlineCitation"]["Article"]["Journal"]["Title"], str):
                             data["Title"] = entrie["MedlineCitation"]["Article"]["Journal"]["Title"]["#text"]
                         else:
                             data["Title"] = entrie["MedlineCitation"]["Article"]["Journal"]["Title"]
@@ -95,7 +95,7 @@ def getPubmedData(term, date_min, date_max, nb_items = -1, debug = False, store
                             for part in entrie["MedlineCitation"]["Article"]["ArticleTitle"]:
                                 if "#text" in part:
                                     data["ArticleTitle"] += part["#text"]
-                        elif isinstance(entrie["MedlineCitation"]["Article"]["ArticleTitle"], object):
+                        elif not isinstance(entrie["MedlineCitation"]["Article"]["ArticleTitle"], str):
                             data["ArticleTitle"] = entrie["MedlineCitation"]["Article"]["ArticleTitle"]["#text"]
                         else:
                             data["ArticleTitle"] = entrie["MedlineCitation"]["Article"]["ArticleTitle"]
@@ -106,7 +106,7 @@ def getPubmedData(term, date_min, date_max, nb_items = -1, debug = False, store
                                 for part in entrie["MedlineCitation"]["Article"]["Abstract"]["AbstractText"]:
                                     if "#text" in part:
                                         data["Abstract"] += part["#text"]
-                            elif isinstance(entrie["MedlineCitation"]["Article"]["Abstract"]["AbstractText"], object):
+                            elif not isinstance(entrie["MedlineCitation"]["Article"]["Abstract"]["AbstractText"], str):
                                 data["Abstract"] = entrie["MedlineCitation"]["Article"]["Abstract"]["AbstractText"]["#text"]
                             else:
                                 data["Abstract"] = entrie["MedlineCitation"]["Article"]["Abstract"]["AbstractText"]
diff --git a/models/LLM/Ollama/__pycache__/ollama.cpython-313.pyc b/models/LLM/Ollama/__pycache__/ollama.cpython-313.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..00224bcf9f3e9bfd7270dd9731d100dede3da8f5
Binary files /dev/null and b/models/LLM/Ollama/__pycache__/ollama.cpython-313.pyc differ
diff --git a/models/LLM/Ollama/ollama_wrapper.py b/models/LLM/Ollama/ollama_wrapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..ad23ab557a5ab14882853509af9efebf172ecb7b
--- /dev/null
+++ b/models/LLM/Ollama/ollama_wrapper.py
@@ -0,0 +1,47 @@
+from ollama import chat
+from ollama import ChatResponse
+import json
+
+NCDS = [
+    "Non-Communicable Diseases",
+    "Diabetes",
+    "Cancer",
+    "Chronic respiratory disease",
+    "Cardiovascular diseases",
+    "Mental Health",
+    "Diabetes type 1",
+    "Diabetes type 2"
+]
+
+def classify(model, sequence, labels):
+    prompt = f'I need you to give me the labels that could be given to the text (keep in mind that u can put multiple labels and select only the labels that i give you):\
+        text: {sequence}\
+        labels: {labels}\
+        Give the response in json format "labels": [] with no text at all'
+
+    response: ChatResponse = chat(model=model, messages=[
+    {
+        'role': 'user',
+        'content': prompt,
+    },
+    ])
+
+    json_str = response.message.content.strip().lstrip('```json').strip()
+
+    if json_str.endswith("```"):
+        json_str = json_str[0:-3]
+
+    responce_json = json.loads(json_str)
+
+    print(responce_json)
+
+    res = {}
+
+    for label in labels:
+        res[label] = label in responce_json["labels"]
+            
+    return 
+
+text = "Theranostic drugs represent an emerging path to deliver on the promise of precision medicine. However, bottlenecks remain in characterizing theranostic targets, identifying theranostic lead compounds, and tailoring theranostic drugs. To overcome these bottlenecks, we present the Theranostic Genome, the part of the human genome whose expression can be utilized to combine therapeutic and diagnostic applications. Using a deep learning-based hybrid human-AI pipeline that cross-references PubMed, the Gene Expression Omnibus, DisGeNET, The Cancer Genome Atlas and the NIH Molecular Imaging and Contrast Agent Database, we bridge individual genes in human cancers with respective theranostic compounds. Cross-referencing the Theranostic Genome with RNAseq data from over 17'000 human tissues identifies theranostic targets and lead compounds for various human cancers, and allows tailoring targeted theranostics to relevant cancer subpopulations. We expect the Theranostic Genome to facilitate the development of new targeted theranostics to better diagnose, understand, treat, and monitor a variety of human cancers."
+
+classify('llama3.2', text, NCDS)
\ No newline at end of file
diff --git a/testModel/test.py b/testModel/test.py
index 4fd378194aebd21a03db8a8cb835cc3acc7ead80..1a09d4f621a33d6cd651721f193880cdcb9b6c24 100644
--- a/testModel/test.py
+++ b/testModel/test.py
@@ -108,7 +108,7 @@ for disease_label in DISEASES_LABELS:
         if MODELS[model]["isHuggingFace"]:
             predictions = MODELS[model]["predict"](pipline, title+abstract, DISEASES_LABELS, data["treshold"])
         else:
-            predictions = MODELS[model]["predict"](title+abstract, DISEASES_LABELS)
+            predictions = MODELS[model]["predict"](model, title+abstract, DISEASES_LABELS)
 
         end = time.time()
 
diff --git a/variables/models.py b/variables/models.py
index ded4df5fd2d64adbaa86ab2796fd1b42cc4d7116..9a3e188801e03b380f99d59568142a8e611a3aa5 100644
--- a/variables/models.py
+++ b/variables/models.py
@@ -2,10 +2,16 @@ import sys
 import os
 
 # Ajouter le répertoire parent au chemin de recherche
-sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../")))
+sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../')))
 
 from models.ZeroShotClassifier.HuggingFace.zero_shot_classification import create_classifier, classify
+import models.LLM.Ollama as ollama
 
 MODELS = {
-    'facebook/bart-large-mnli': {'predict': classify, 'isHuggingFace': True, 'pipline': create_classifier}
+    'facebook/bart-large-mnli': {'predict': classify, 'isHuggingFace': True, 'pipline': create_classifier},
+    'MoritzLaurer/bge-m3-zeroshot-v2.0': {'predict': classify, 'isHuggingFace': True, 'pipline': create_classifier},
+    'MoritzLaurer/DeBERTa-v3-base-mnli-fever-anli': {'predict': classify, 'isHuggingFace': True, 'pipline': create_classifier},
+    'MoritzLaurer/deberta-v3-base-zeroshot-v1.1-all-33': {'predict': classify, 'isHuggingFace': True, 'pipline': create_classifier},
+    'MoritzLaurer/multilingual-MiniLMv2-L6-mnli-xnli': {'predict': classify, 'isHuggingFace': True, 'pipline': create_classifier},
+    'llama3.2': {'predict': ollama.classify, 'isHuggingFace': False, 'pipline': None}
 }
\ No newline at end of file