From 24685ebb99530150ab76f15e413c0b7031c97ce6 Mon Sep 17 00:00:00 2001 From: mongar Date: Sat, 4 May 2024 15:24:50 -0500 Subject: [PATCH] Se corrigio el problema que mantenia el archivo entre sesiones implementando la session_state de streamlit y un mejor manejo de la cache --- app.py | 5 ++++- .../streamlit_tools.cpython-311.pyc | Bin 2307 -> 2307 bytes .../data_level0.bin | Bin 6284000 -> 6284000 bytes .../length.bin | Bin 4000 -> 4000 bytes .../__pycache__/lc_tools.cpython-311.pyc | Bin 8792 -> 9317 bytes langchain_tools/lc_tools.py | 21 ++++++++++++++++++ 6 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app.py b/app.py index 6ba2143..0101459 100644 --- a/app.py +++ b/app.py @@ -60,7 +60,10 @@ if pdf_name: ) # Cargamos el modelo LLM desde LangChain - llm = langChainTools.load_llm_open_source() + # llm = langChainTools.load_llm_open_source() + + # Cargamos el modelo LLm de Ollama + llm = langChainTools.load_llm_ollama() # Creamos la cadena que integra Vectorstroe, el LLM para hacer consultas. # Para este caso la cadena tene el parametro de memoria. diff --git a/chats/__pycache__/streamlit_tools.cpython-311.pyc b/chats/__pycache__/streamlit_tools.cpython-311.pyc index 3930f35b24d861023ba60f58ad1a50aae21ec819..b2463fdd6be10bff9dbfd9eda3ad24d636817bf7 100644 GIT binary patch delta 19 ZcmZn`Y8K*J&dbZi00i#68@YaR001eK1dsp# delta 19 ZcmZn`Y8K*J&dbZi00cjiHgf&s001oN1s4DS diff --git a/embeddings/socialbigdatasociologiaycienciassocialescomputacio/eaf7d8a5-f2d4-4b12-a6d3-94efe772d2fd/data_level0.bin b/embeddings/socialbigdatasociologiaycienciassocialescomputacio/eaf7d8a5-f2d4-4b12-a6d3-94efe772d2fd/data_level0.bin index 777577273acd9e1a73bb1888c541658a184b8f6f..ea3192e8ec5112eb8b4f2a7bde5d13bbb95e6ac0 100644 GIT binary patch delta 7637 zcmeIyK@q?p3AO{Jx$e;laJn;|#ZDsVakDP$a-JbPa=eyan#k{i$KhOg+ sKmiF!NJ0{lkc1>8Aqh!HLK2dYgd`*(2}wvo5|WUFBqZTKBpk8J3voUJvH$=8 literal 6284000 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 z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r a3>YwAz<>b*1`HT5V8DO@0|pEj7y|*u-BRNK diff --git a/embeddings/socialbigdatasociologiaycienciassocialescomputacio/eaf7d8a5-f2d4-4b12-a6d3-94efe772d2fd/length.bin b/embeddings/socialbigdatasociologiaycienciassocialescomputacio/eaf7d8a5-f2d4-4b12-a6d3-94efe772d2fd/length.bin index a20ee2cc64d62351cb3bdf95e9ce0c25434fbae9..1dc89f8e47e591af4c36a35046077f0ba1d1ef9d 100644 GIT binary patch literal 4000 ocmeIuF#!Mo0K%a4Pi+hzh(KY$fB^#r3>YwAz<>b*1`NCh1`nVB0RR91 literal 4000 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 G4&AZ=g|)c= diff --git a/langchain_tools/__pycache__/lc_tools.cpython-311.pyc b/langchain_tools/__pycache__/lc_tools.cpython-311.pyc index f2454a1ab6eaa71a854f149101583100893399f1..3dcd76d87998db6dcc6b1e007bdcb1ba828c2bc4 100644 GIT binary patch delta 1330 zcmZ{jU2Gdg5P)~@&KJiQpU;i|V)tT06DQZ7R3xaOA+$klp-`!*n(`wHa2?-K40pb; z=Y$ek8leb9LPfGx0?{X+C{+nmAWI04Kteq5gw%&3tb5`|p}f@*6%T!4#%WSOF!p_( zotd4T+Zi_xt{zq|g~K5Na{m0DXJ5(J)fD}_K2YCj60^&eoMa(Mi9jAEW_Xd9>asw{ z3OwslNSX2!F(UQms&bk7@}zB-oKm?Sjnf5wjZO_)q34y2V6$_PEW=`D!$1mQGqgww zs;K}YW*4LiH}(oQC{1ufdL8(Q^d*h)7Xlv!dtjFlU}>()z3FYRV10;wfENJdP*{dP zCf`T%{7v~us$aY=OLT<)9y+M(z}OK)l8-8Tk_%QnQ>Hix&y=2i3IId~g z>le^bopp-k+G!Sn07GOG7EVgf~Jv{syHS<7QyMVE~01KoQ zBZ=HnU{#GZw8NNQ-jkpIf z3^>6KaVu4n-k;}$V1E7>&K}k*>Uxs-r_dOn$ zBy9cgfjMl=sR6c@YtJ?(Gaj)7*PQeJitD2SjDA11+{;oFrM4S;Z zzf}@hu z(y9~rXSKe9)?V^ef_+9s2rqE?wFBUvLaX3nu^Mts-0|}@g&}9POZ+L}cK1Ns5b<8*IR%`_&LjnBQbhnf) zi&Y|e@u;3mWS|#UnlHDcY4x9CKZ^%-L(3-l5L^)nCLYs=11)dETk?W~)ow}u<~KY3 J<3Cxu{x4!a@%I1# diff --git a/langchain_tools/lc_tools.py b/langchain_tools/lc_tools.py index 929e737..a75ab81 100644 --- a/langchain_tools/lc_tools.py +++ b/langchain_tools/lc_tools.py @@ -10,6 +10,7 @@ from langchain.chains import RetrievalQAWithSourcesChain, ConversationalRetrieva from langchain_community.llms import HuggingFaceEndpoint from langchain_community.embeddings import HuggingFaceEmbeddings from streamlit.runtime.state import session_state +from langchain_community.llms import Ollama class LangChainTools: @@ -150,6 +151,26 @@ class LangChainTools: return llm + @st.cache_resource + def load_llm_ollama(_self): + """Esta funcion carga un modelo de LLM OpenSource desde Ollama + + Returns: + _type_: Retorno a un objetito de tipo LLM de OpenAI + """ + + # Elegimos el modelo de Ollama que utilizaremos + + model: str = "gemma:2b" + + llm = Ollama( + model=model, + temperature=0.1, + num_ctx=1000, + ) + + return llm + def define_retrieval_qa(self, _llm, _vectordb, _file_name, _embedding_model): """Esta función integra un LLM y una base de datos vectorial en una chain de LangChain para hacer requerimientos. Este modelo no integra memoria.