En el presente proyecto muestro la construcción de una sistema de recomendación, el sistema permite recomendar recursos a través del uso de mecanismos de Procesamiento de lenguaje natura como agentes langchain, IA generatica y embeddings.
Project description
Sistema de recomendación con agente langchain
Acerca del proyecto
En el presente proyecto muestro la construcción de una sistema de recomendación, el sistema permite recomendar recursos a través del uso de mecanismos de Procesamiento de lenguaje natura como agentes langchain, IA generatica y embeddings.
Procesos
- Configuración y creacion del modulo de la base de datos vectorial con ChromaDb
- Creación del módulo y configuracion del agente Langchain
- Módulo principal de recomendación el cual gestiona e integrar los dos anteriores modulos
Tecnologías
- Python
- ChromaDB
- Langchain
- Llama
- HugginFace
- pytorch
- OpenAI
- Groq
- Embeddings
- LLM
Prerequisitos
- Instalar Python (https://www.python.org/downloads/).
- Obtener una API KEY de OpenAI (opcional si se va a utilizar Groq) (https://openai.com/).
- Obtener una API KEY de groq (opcional si se va a utilizar OpenAI) (https://console.groq.com/keys)
Instalacion manual desde el repositorio
-
Clonar el repositorio
git clone https://github.com/johansquintero/recommender-agent
-
Crear el entorno virtual
python -m venv env
-
Activar entorno virtual (windows):
env\Scripts\activate
-
Instalar las dependencias del proyecto:
pip install -r requirements.txt
Instalando con pip
pip install recommender-agent
Ejemplo de implementacion del sistema
Imports
from recommender_agent.recommenderSystem import CoreRecommendation
import pandas as pd
Se importa el dataset de la ruta donde este ubicado
books = pd.read_csv("../dataset_books/Books2.csv")
books = books.fillna('')
books.drop(columns=["isbn13","thumbnail","subtitle"],axis=1,inplace=True)
Un requisito es que cada uno de los elementos tengan un id
books["id"] = books.index + 1
Se convierte a diccionario el dataset
books_dict = books.to_dict(orient='records')
la libreria dispone de dos alternativas para aplicar un LLM uno por la api de OpenAI y el otro por la api de Groq, cabe recalcar que es obligatorio contar con alguna de estas 2 apis
Si se cuenta con una api key de openai este seria el proceso
openai_api_key = ""
Se inicializa la instancia el recomendador
recommender_open_ai = CoreRecommendation(openai_key=openai_api_key)
De la intancia anterior se crea ruta de persistencia de los recursos
recommender_open_ai.init_components(collection_name="books",resources=books_dict)
El el caso de usar groq este es el metodo
groq_api_key=""
recommender_groq = CoreRecommendation(groq_key=groq_api_key)
recommender_groq.init_components(collection_name="books",resources=books_dict)
Usuario de prueba en formato JSON
user = {
"user": {
"id": 234567,
"name": "Carlos Rodriguez",
"email": "carlos_rodriguez@email.com",
"address": {
"street": "Calle Principal",
"city": "Barcelona",
"state": "Spain",
"postal_code": "08001"
},
"preferences": {
"genres": ["Philosophy","Novels", "History"],
"favorite_authors": ["Dan Brown", "Ken Follett", "René Descartes"]
},
"purchase_history": [
{
"book": "The Da Vinci Code",
"author": "Dan Brown",
"price": 17.99,
"purchase_date": "2023-12-12"
},
{
"book": "The Pillars of the Earth",
"author": "Ken Follett",
"price": 22.99,
"purchase_date": "2024-01-05"
}
]
}
}
Se ejecuta el recomendador con la informacion del usuario
response = recommender_groq.get_recommendation(user=user)
print(f"Usuario={response['user']} \n")
print(f"Recomendaciones= {response['rec']}")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file recommender-agent-0.3.1.tar.gz.
File metadata
- Download URL: recommender-agent-0.3.1.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d156d7adc955e7ad4146bd00705e4909c3699db8ec67a87e7595b7ab444fbc4
|
|
| MD5 |
e5ef01c2c16be2aa658a042a8896de8c
|
|
| BLAKE2b-256 |
575b6fb54797bdf8ea1e6a90b08a15dc4524303af318b7c98886990adac9818e
|
File details
Details for the file recommender_agent-0.3.1-py3-none-any.whl.
File metadata
- Download URL: recommender_agent-0.3.1-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eee3b1469a92ce401eef003098babd7f057a849b7e7a6046c7c798b67e26630e
|
|
| MD5 |
012a8ff028b8b45b22a0543230fb934c
|
|
| BLAKE2b-256 |
f00a56ab1a51c37292a77ade0128d27d6d965afb2f8aa279f2e70e74e638c14a
|