Skip to main content

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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

recommender-agent-0.3.0.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

recommender_agent-0.3.0-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file recommender-agent-0.3.0.tar.gz.

File metadata

  • Download URL: recommender-agent-0.3.0.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

Hashes for recommender-agent-0.3.0.tar.gz
Algorithm Hash digest
SHA256 27a5c4f3dbe6dd1d3feff7b855a25e3da8d40645cfebd0e282d8d3960bc6bc51
MD5 c3f2cec068004d75ded5e47061ca1507
BLAKE2b-256 0c748a0c0e3b72d678573c63668cfcf0a4e7e7b688e15c5f3932ebf0a7eede9f

See more details on using hashes here.

File details

Details for the file recommender_agent-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for recommender_agent-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 115459e1accd1b5c12b2475e331031ddf3b48e2a400cb751f09d1ffdfdde4dcf
MD5 2471b6ac33a24eef3a62832f8b3a87cc
BLAKE2b-256 6ddb836f89f325d640edbb9c53de96852d4af346a6dea42154cb52c84eba1681

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page