← Other AI Projects

RAG / AI Agents

AI Travel Inquiry Auto-Responder

Customer inquiry assistant that answered recurring travel questions using the agency's package and internal information.

RAGLangChainLangGraphOpenAI APIFastAPIPostgreSQLpgvectorAI AgentsREST APIDocker
Project status
Freelance Project
Year
2026

Overview

Developed an AI auto-responder for a travel business to handle repetitive customer inquiries about destinations, tour packages, inclusions, pricing, and travel conditions. Responses were grounded in the agency's own package descriptions and reference material rather than generated only from the model's general knowledge.

Objectives

  • Answer common customer questions quickly using the agency's current package and destination information.
  • Retrieve the most relevant package data before generating a response.
  • Ask follow-up questions when information such as destination, dates, or package preference was missing.
  • Make package descriptions and other frequently changing information easy for non-developers to update.
  • Fall back to human handling when the knowledge base did not contain a reliable answer.

My Contribution

  • Built the document-ingestion and retrieval pipeline for package descriptions, destination information, FAQs, and policy documents.
  • Implemented the conversational workflow with LangGraph, including retrieval, clarification, answer generation, and fallback states.
  • Used LangChain for document processing and retrieval components and the OpenAI API for embeddings and grounded response generation.
  • Stored package metadata and embeddings in PostgreSQL with pgvector, enabling semantic retrieval together with metadata-based filtering.
  • Built a lightweight FastAPI backend for incoming requests, retrieval, response generation, and conversation logging.
  • Added a simple spreadsheet/CSV synchronization workflow so package descriptions and changing travel information could be updated without modifying application code.

Architecture

  • Incoming customer message is received by the FastAPI service.
  • LangGraph routes the request based on whether it can be answered directly, requires retrieval, needs clarification, or should be handed off.
  • LangChain retrieves relevant package and policy chunks from PostgreSQL/pgvector using semantic similarity and metadata filters.
  • The OpenAI API generates a response using only the retrieved company context and recent conversation state.
  • Low-confidence or unsupported requests are marked for manual handling instead of producing an unsupported answer.
  • Updated package information can be synchronized from a simple spreadsheet or CSV source and re-indexed without rebuilding the application.

Technical Stack

  • Python
  • FastAPI
  • LangChain
  • LangGraph
  • OpenAI API
  • PostgreSQL + pgvector
  • Docker

Main Technical Challenges

  • Package information changed frequently, so the knowledge base needed a simple update workflow.
  • Similar packages could have overlapping descriptions, requiring metadata filters in addition to semantic similarity.
  • The assistant needed to distinguish between routine questions it could answer automatically and custom requests that required a human response.

Outcome

Delivered a maintainable auto-response workflow that could answer recurring travel inquiries from company data, while allowing package information to be updated without changing the application code.