RAG & Chatbots

ICCN Chatbot

An ICCN knowledge assistant with a gamified flow for collecting creative-economy participant data.

Client
ICCN
Role
AI Engineer
Year
2025–2026
Status
Staging deployment

ICCN Chatbot answering a question about the Indonesia Creative Cities Network

Screenshot 1 of 3

Overview

Knowledge access and data collection in one conversation

ICCN Chatbot gives creative-community users a conversational way to ask about ICCN, its network, membership, programs, and related creative-economy information. The assistant retrieves context from ICCN documents and is prompted to state when the available knowledge does not support an answer.

The same interface includes Ramalan Karir, a guided experience that collects profile information over several turns. Instead of presenting a conventional form, it asks for details progressively and ends with a personalized career-result teaser as the user-facing reason to complete the flow.

My contribution covered prompt engineering, knowledge ingestion, and the Ramalan Karir experience. I shaped the assistant's Indonesian conversational behavior and domain boundaries, built the document-ingestion work needed for retrieval, and developed the gamified collection flow. The wider ICCN AI platform was collaborative work.

Technology stack

Conversation and orchestration

  • LangGraph
  • LangChain
  • Amazon Nova

Retrieval and data

  • Titan Embeddings
  • ChromaDB
  • BM25
  • Amazon S3

Delivery and operations

  • FastAPI
  • Server-Sent Events
  • Redis
  • LangWatch
  • Docker

ProblemOne interface had to support open questions and structured collection

ICCN knowledge is spread across organizational documents, programs, network information, and creative-economy material. A useful assistant needed to handle informal questions without requiring users to know the wording used in those sources.

The product also needed structured participant information. A conventional form would separate that task from the conversation, so Ramalan Karir collected the same information progressively and paired completion with a personalized result.

Knowledge boundary

The assistant needed to answer from ICCN sources and acknowledge when those sources did not contain enough information.

Collection experience

Profile fields had to remain structured even though users supplied them through a multi-turn conversation.

ContributionDesigned the prompts, ingestion, and gamified collection flow

I worked on the parts of ICCN Chatbot that determine how it communicates and how it turns conversation into usable data. My scope covered prompt behavior, the knowledge-ingestion pipeline, and Ramalan Karir rather than the entire ICCN AI platform.

Prompt behavior

Defined the ICCN-oriented persona, support for natural Indonesian, domain boundaries, and responses for missing knowledge.

Knowledge ingestion

Prepared ICCN documents for parent-child vector retrieval and BM25 search over organizational content.

Ramalan Karir

Developed progressive field collection, validation, Redis-backed state, fixed-choice steps, and personalized result generation.

ArchitectureSeparate routes protect knowledge search and guided collection

A deterministic entry rule returns unfinished public sessions to Ramalan Karir before the LLM supervisor handles other requests. The supervisor routes the remaining messages to ICCN retrieval, Ramalan Karir, or a direct response. This keeps a structured collection sequence from being lost inside a general chat flow.

Prepare knowledge

ICCN documents

Organizational and creative-economy material from S3

Parent-child ingestion

Searchable child chunks with broader parent context

ChromaDB + BM25

Semantic and lexical retrieval over ICCN knowledge

Route the conversation

Widget + FastAPI

Receives and streams public conversations

Deterministic entry

Preserves unfinished collection sessions

LangGraph supervisor

Routes RAG, Ramalan Karir, or direct chat

Answer or collect

ICCN RAG

Answers from retrieved document context

Redis field state

Stores and validates progressive profile data

Personalized result

Completes Ramalan Karir with a result teaser

Hybrid ICCN retrieval

Dense child-chunk retrieval is combined with parent context and BM25 ranking. This supports semantic questions and exact ICCN terminology, but no controlled retrieval benchmark is available.

Persistent field state

Ramalan Karir stores progressive profile state in Redis, validates extracted values, and uses fixed choices where the data must remain constrained.

ResultsObserved behavior across one month of LangWatch traces

442

clean plain-text interaction rows analyzed

393 distinct normalized inputs

≥20%

contained selected colloquial Indonesian markers

at least 89 of 442 interaction rows

234

retrieval rows with explicit PDF source metadata

evidence of document-connected retrieval

12

personalized career-result teaser outputs

observed traces, not a conversion rate

The complete export contains 1,449 mixed trace rows recorded from July 14 to August 12, 2026. A cleaner conversational subset contains 442 plain-text interaction rows and 393 distinct normalized inputs. At least 89 rows used selected colloquial Indonesian markers, showing that the observed inputs included informal language as well as formal questions.

The traces also contain 234 structured retrieval rows with explicit PDF source metadata and 12 personalized career-result teaser outputs. These observations confirm that document retrieval and the final Ramalan Karir stage occurred. They do not measure answer accuracy, retrieval quality, unique users, or conversion.

Knowledge boundaries

About 24.9% of the analyzed responses used explicit unavailable-information language. This measures fallback behavior, not whether retrieval should have found an answer.

Lightweight collection steps

Observed onboarding and field-selection stages typically took about one to two seconds, while personalized teaser generation had a median around 7.4 seconds.

LearningsLessons from designing the chatbot experience

Protect structured flows before general routing

A deterministic entry rule keeps unfinished data collection on track before an LLM supervisor considers other intents.

Prompt behavior should expose knowledge limits

Organizational assistants need a clear way to acknowledge missing support instead of treating every question as answerable.

Pair data collection with visible user value

Ramalan Karir turns progressive profile collection into a guided experience that ends with personalized content rather than a generic submission state.

Next project

ICCN Research Agent

An AI-assisted workflow for producing source-cited research briefs about Indonesia's creative economy.

View project
Back to top