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:
- The task title
- Its description
- All subtasks
- All comments on both tasks and subtasks
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:
- I embed the question with
text-embedding-ada-002. - I search Qdrant for the top relevant Asana entries.
- I combine the top matches into a single system prompt.
- 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.