A playground for LangChain.js, LangGraph, Slack, Model Context Protocol (MCP) and other LLM-related tools.
This project provides both REST API endpoints or Slack bot integration for interacting with different language models and LangChain and LangGraph workflows.
- langchain.js: Framework for building applications with LLMs.
- langgraph: Framework for building applications with advanced workflow orchestration for multi-step processes.
- slack/bolt: Integration with Slack for building Slack apps.
- Model Context Protocol (MCP): MCP is a protocol for building LLM-powered tools.
- DirectoryLoader: Loads documents from a directory via Unstructured API.
- ConfluenceLoader: Loads documents from Confluence.
- GitHubLoader: TODO.
- ollama: Ollama enables the execution of LLM models locally.
- openweb-ui: OpenWeb UI is a self-hosted WebUI that interacts with Ollama.
- unstructured-api: The Unstructured API is designed to ingest/digest files of various types and sizes.
- qdrant: Qdrant serves as a vector database.
- chroma: Chroma serves as an embedding database. Not used anymore.
- redis: Redis is an open-source in-memory data structure store.
fastify
: serves as a web server insrc/api
slack
: serves as a Slack app insrc/slack
In this project, I used LangGraph to build a workflow to analyze Sentry logs.
The workflow in big picture is as follows:
- Get Sentry issue and first event
- Normalize the issue and event and extend the stacktrace to source code fetching from GitHub
- Generate a summary of the investigation using the normalized issue and event

In this project, I used LangGraph to build a workflow to analyze New Relic logs.
The workflow in big picture is as follows:
- Get New Relic logs
- Analyze New Relic logs to get the request timeline, service error logs and relevant URLs
- Generate a summary of the investigation by analyzing the request timeline, service error logs and relevant URLs

In this project, there are following routes to answer user's question from the document RAG retrieval.
Routes:
DELETE /document/reset
: Reset the document RAG retrieval.PUT /document/load/directory
: Load documents from a directory using Unstructured API + Parent document retriever.PUT /document/load/confluence
: Load documents from Confluence + Parent document retriever.POST /document/query
: Answer user's question from the document RAG retrieval.


In this project, I used slack/bolt and LangGraph to build a Slack app.
- When a user mentions the bot in a channel, the bot will respond with a message.
- It will execute the following steps:
- Intent classifier: Classify the intent of the user's message.
- Intent router: Route the user's message to the appropriate node.
- Get message history: Get the message history of the channel.
- MCP tools: Use MCP tools to get information from Model Context Protocol.
- Summarise thread: Summarise the thread.
- Translate message: Translate the message to the user's language.
- Find information: Find information from the RAG database.
- General response: Generate a general response.
- Final response: Respond to the user's message.
docker-compose up -d --build
TBD
- Add more examples
- Add tests
- Make better documentations