DEV Community

Cover image for Building an Intelligent E-commerce Assistant: LLM-Powered Intent Recognition Using Cohere and Gradio
Eddie Otudor
Eddie Otudor

Posted on

1 1 1 1

Building an Intelligent E-commerce Assistant: LLM-Powered Intent Recognition Using Cohere and Gradio

As e-commerce continues to evolve, understanding customer intent has become crucial for providing exceptional shopping experiences. In this article, I'll share how we built a sophisticated intent recognition system using Cohere's Command model and Gradio, creating an interactive demo that showcases the power of LLMs in e-commerce.

The Challenge

Traditional e-commerce search and navigation systems often struggle with understanding natural language queries like "I need a waterproof watch that won't break the bank" or "Can you help me find a gift for my tech-savvy dad?". These systems typically rely on keyword matching and predefined rules, missing the nuanced understanding that modern customers expect.

Solution: LLM-Powered Intent Recognition

We've built an interactive demo using Gradio that showcases how Large Language Models (LLMs) can revolutionize e-commerce interactions. Our system:

  • Understands complex, natural language queries
  • Extracts relevant entities and specifications
  • Determines user intent with high accuracy
  • Provides detailed analysis in real-time

Technical Implementation

1. Core Intent Recognition System

@dataclass
class IntentResponse:
    intent: str
    confidence: float
    entities: Dict
    suggested_action: str
    explanation: str

class EcommerceLLMIntentRecognizer:
    def __init__(self):
        api_key = os.getenv('COHERE_API_KEY')
        self.co = cohere.Client(api_key)

        self.valid_intents = {
            'product_search': 'SEARCH_CATALOG',
            'price_inquiry': 'FETCH_PRICE',
            'order_status': 'CHECK_ORDER_STATUS',
            'return_request': 'INITIATE_RETURN',
            'cart_management': 'MODIFY_CART',
            'availability_check': 'CHECK_INVENTORY',
            'checkout_help': 'ASSIST_CHECKOUT',
            'shipping_info': 'PROVIDE_SHIPPING_INFO'
        }
Enter fullscreen mode Exit fullscreen mode

2. LLM Prompt Engineering

The key to accurate intent recognition lies in our carefully crafted prompt:

def _generate_prompt(self, query: str) -> str:
    return f"""As an e-commerce AI assistant, analyze the following customer query and extract the shopping intent, relevant entities, and determine the appropriate action.

Valid intents are: {', '.join(self.valid_intents.keys())}

Customer Query: "{query}"

Provide your analysis in the following JSON format:
{{
    "intent": "the_identified_intent",
    "confidence": 0.XX,
    "entities": {{
        "product": "identified_product",
        "category": "product_category",
        "specifications": ["any", "relevant", "specs"],
        "price_range": {{
            "min": "if_mentioned",
            "max": "if_mentioned"
        }}
    }},
    "explanation": "Brief explanation of why this intent was chosen"
}}"""
Enter fullscreen mode Exit fullscreen mode

3. Interactive Demo with Gradio

One of the most powerful aspects of our implementation is the interactive demo built with Gradio:

def process_query(user_query: str) -> str:
    try:
        recognizer = EcommerceLLMIntentRecognizer()
        response = recognizer.recognize_intent(user_query)

        return json.dumps({
            'timestamp': datetime.now().isoformat(),
            'query': user_query,
            'intent': response.intent,
            'confidence': response.confidence,
            'entities': response.entities,
            'suggested_action': response.suggested_action,
            'explanation': response.explanation
        }, indent=2)
    except ValueError as e:
        return json.dumps({
            'error': str(e),
            'hint': 'Please ensure COHERE_API_KEY is set in your .env file'
        }, indent=2)

# Create Gradio interface
iface = gr.Interface(
    fn=process_query,
    inputs=gr.Textbox(label="Enter customer query"),
    outputs=gr.JSON(label="Intent Analysis"),
    title="E-commerce LLM Intent Recognition System",
    description="Enter your query to see the detailed intent analysis.",
    examples=[
        ["I'm looking for a waterproof smart watch under $300"],
        ["Can you compare the iPhone 13 and iPhone 14 Pro?"],
        ["Need to return my order #ABC123, it's the wrong size"],
        ["Do you have this dress in size medium and in red?"],
        ["What's your shipping time to California?"]
    ]
)
Enter fullscreen mode Exit fullscreen mode

Real-World Examples

Let's look at some example queries and their analysis:

1. Product Search with Specifications

Query: "I need a waterproof smartwatch under $300"
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "intent": "product_search",
  "confidence": 0.95,
  "entities": {
    "product": "smartwatch",
    "specifications": ["waterproof"],
    "price_range": {
      "max": 300
    }
  },
  "explanation": "Query specifies a product type with specific features and price constraint"
}
Enter fullscreen mode Exit fullscreen mode

2. Order Status Check

Query: "Where's my order #ABC123?"
Enter fullscreen mode Exit fullscreen mode

Response:

{
  "intent": "order_status",
  "confidence": 0.98,
  "entities": {
    "order_id": "ABC123"
  },
  "explanation": "Direct question about order status with order number"
}
Enter fullscreen mode Exit fullscreen mode

Benefits of Our Approach

1. Interactive Demo

  • Instant feedback through Gradio interface
  • Easy to test different queries
  • Visual JSON output for clear understanding

2. Developer-Friendly

  • Simple setup process
  • Clear code structure
  • Easy to extend and modify

3. Business Value

  • Better customer understanding
  • Improved search accuracy
  • Automated query classification

Implementation Guide

Want to try it yourself? Here's how:

1. Install Requirements

pip install cohere gradio python-dotenv
Enter fullscreen mode Exit fullscreen mode

2. Set Up Environment

Create a .env file:

COHERE_API_KEY=your_api_key_here
Enter fullscreen mode Exit fullscreen mode

3. Run the Demo

python app.py
Enter fullscreen mode Exit fullscreen mode

Future Enhancements

1. Enhanced Analysis

  • Sentiment analysis
  • Multiple intent detection
  • Confidence scoring improvements

2. UI Improvements

  • Visual intent mapping
  • Real-time suggestions
  • Mobile optimization

3. Integration Capabilities

  • API endpoint creation
  • Webhook support
  • Database integration

Conclusion

By combining the power of Cohere's LLM with Gradio's user-friendly interface, we've created a powerful tool for understanding e-commerce customer intentions. This demo showcases how modern AI can transform the way we interact with e-commerce platforms.

The application is running as a Hugging Face Space over here. Feel free to reach out if you have questions or want to discuss implementing similar solutions for your e-commerce platform.


Author's Note: I'm passionate about building practical AI solutions that bridge the gap between advanced technology and real-world applications. Connect with me to discuss more about AI in e-commerce or to explore collaboration opportunities.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay