How I Built My AI Chatbot

Overview

This AI chatbot was designed to help users query structured information from our internal Asana project management system. It leverages OpenAI embeddings, Qdrant vector search, and OpenAI completions to generate smart, context-aware answers.

Step 1: Extracting Data from Asana

I began by extracting all relevant data from Asana. For each task, I collected:

This data was then structured into clean text blocks ready for embedding.

Step 2: Embedding Content

Each text block was embedded using OpenAI's text-embedding-ada-002 model. This turned the content into vectors that represent semantic meaning, which could later be compared with user queries.

Step 3: Storing in Qdrant

The vectors were stored in Qdrant, an open-source vector search engine. Each vector was stored with metadata like the original Asana task ID, so I could retrieve full context later.

Step 4: Handling User Questions

When a user asks a question:

  1. I embed the question with text-embedding-ada-002.
  2. I search Qdrant for the top relevant Asana entries.
  3. I combine the top matches into a single system prompt.
  4. I send this prompt to OpenAI's GPT model to generate a response.

Why This Works

Embedding both questions and internal knowledge into the same vector space allows for powerful semantic search. Even if the phrasing is different, the chatbot still finds the right context and gives relevant answers based on actual project data.

Built by Lucas Matthijsse — Passionate about AI and productivity tooling.