Skip to main content

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

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']}")

Metadata

Release files for recommender-agent 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for recommender-agent 0.3.1
File Size Uploaded
recommender-agent-0.3.1.tar.gz 9.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for recommender-agent 0.3.1
File Interpreter ABI Platform
recommender_agent-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.1 kB

Release files / recommender-agent-0.3.1.tar.gz

Download URL recommender-agent-0.3.1.tar.gz
Size 9.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1d156d7adc955e7ad4146bd00705e4909c3699db8ec67a87e7595b7ab444fbc4
BLAKE2b-256 checksum
How to use checksums
575b6fb54797bdf8ea1e6a90b08a15dc4524303af318b7c98886990adac9818e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.5

Release files / recommender_agent-0.3.1-py3-none-any.whl

Download URL recommender_agent-0.3.1-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eee3b1469a92ce401eef003098babd7f057a849b7e7a6046c7c798b67e26630e
BLAKE2b-256 checksum
How to use checksums
f00a56ab1a51c37292a77ade0128d27d6d965afb2f8aa279f2e70e74e638c14a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page