From 0c080011da4f706e1f98b8b3ea98a8eac95f6420 Mon Sep 17 00:00:00 2001 From: "Prayson W. Daniel" Date: Sat, 6 Sep 2025 22:41:57 +0200 Subject: [PATCH] add litellm thinking example --- litellm-thinking/app.py | 75 +++++++++++++ litellm-thinking/chainlit.md | 14 +++ litellm-thinking/config.toml | 147 +++++++++++++++++++++++++ litellm-thinking/public/favicon.svg | 3 + litellm-thinking/public/logo_dark.png | Bin 0 -> 57691 bytes litellm-thinking/public/logo_light.png | Bin 0 -> 57691 bytes litellm-thinking/public/script.js | 61 ++++++++++ litellm-thinking/public/stylesheet.css | 18 +++ litellm-thinking/readme.md | 33 ++++++ litellm-thinking/requirements.txt | 2 + 10 files changed, 353 insertions(+) create mode 100644 litellm-thinking/app.py create mode 100644 litellm-thinking/chainlit.md create mode 100644 litellm-thinking/config.toml create mode 100644 litellm-thinking/public/favicon.svg create mode 100644 litellm-thinking/public/logo_dark.png create mode 100644 litellm-thinking/public/logo_light.png create mode 100644 litellm-thinking/public/script.js create mode 100644 litellm-thinking/public/stylesheet.css create mode 100644 litellm-thinking/readme.md create mode 100644 litellm-thinking/requirements.txt diff --git a/litellm-thinking/app.py b/litellm-thinking/app.py new file mode 100644 index 000000000..3d729a454 --- /dev/null +++ b/litellm-thinking/app.py @@ -0,0 +1,75 @@ +from functools import partial +import chainlit as cl +from litellm import acompletion + + +LLM_MODEL_NAME: str = "ollama/qwen3:latest" +API_BASE_URL: str = "http://localhost:11434" + + +client = partial( + acompletion, + model=LLM_MODEL_NAME, + api_base=API_BASE_URL, + stream=True, + top_p=0.9, + temperature=0.2, + think=True, +) + + +@cl.on_chat_start +def start_chat(): + cl.user_session.set( + "message_history", + [ + { + "content": "Act like a professional communication strategist", + "role": "system", + } + ], + ) + + +@cl.step(name="Reasoning", show_input=False) +async def reasoning_step(stream): + current_step = cl.context.current_step + + async for reason in stream: + chunk = reason.choices[0].delta + if not hasattr(chunk, "reasoning_content"): + break + + else: + await current_step.stream_token(chunk.reasoning_content) + + + +@cl.on_message +async def on_message(message: cl.Message): + message_history = cl.user_session.get("message_history", []) + message_history.append({"role": "user", "content": message.content}) + final_message = cl.Message(content="", author="Assistant") + + response = await client( + messages=message_history, + ) + + ai_response = "" + async for chunkie in response: + chunk = chunkie.choices[0].delta + has_reasoning = hasattr(chunk, "reasoning_content") + + if has_reasoning: + await reasoning_step(response) + else: + ai_response += chunk.content or "" + await final_message.update() + await final_message.stream_token(chunk.content) + + + if ai_response: + message_history.append({"role": "assistant", "content": ai_response}) + cl.user_session.set("message_history", message_history) + + diff --git a/litellm-thinking/chainlit.md b/litellm-thinking/chainlit.md new file mode 100644 index 000000000..0f673dc0a --- /dev/null +++ b/litellm-thinking/chainlit.md @@ -0,0 +1,14 @@ +# Welcome to Chainlit! 🚀🤖 + +Hi there, Developer! 👋 We're excited to have you on board. Chainlit is a powerful tool designed to help you prototype, debug and share applications built on top of LLMs. + +## Useful Links 🔗 + +- **Documentation:** Get started with our comprehensive [Chainlit Documentation](https://docs.chainlit.io) 📚 +- **Discord Community:** Join our friendly [Chainlit Discord](https://discord.gg/ZThrUxbAYw) to ask questions, share your projects, and connect with other developers! 💬 + +We can't wait to see what you create with Chainlit! Happy coding! 💻😊 + +## Welcome screen + +To modify the welcome screen, edit the `chainlit.md` file at the root of your project. If you do not want a welcome screen, just leave this file empty. diff --git a/litellm-thinking/config.toml b/litellm-thinking/config.toml new file mode 100644 index 000000000..5e0b29f64 --- /dev/null +++ b/litellm-thinking/config.toml @@ -0,0 +1,147 @@ +[project] +# List of environment variables to be provided by each user to use the app. +user_env = [] + +# Duration (in seconds) during which the session is saved when the connection is lost +session_timeout = 3600 + +# Duration (in seconds) of the user session expiry +user_session_timeout = 1296000 # 15 days + +# Enable third parties caching (e.g., LangChain cache) +cache = false + +# Whether to persist user environment variables (API keys) to the database +# Set to true to store user env vars in DB, false to exclude them for security +persist_user_env = false + +# Whether to mask user environment variables (API keys) in the UI with password type +# Set to true to show API keys as ***, false to show them as plain text +mask_user_env = false + +# Authorized origins +allow_origins = ["*"] + +[features] +# Process and display HTML in messages. This can be a security risk (see https://stackoverflow.com/questions/19603097/why-is-it-dangerous-to-render-user-generated-html-or-javascript) +unsafe_allow_html = false + +# Process and display mathematical expressions. This can clash with "$" characters in messages. +latex = false + +# Autoscroll new user messages at the top of the window +user_message_autoscroll = true + +# Automatically tag threads with the current chat profile (if a chat profile is used) +auto_tag_thread = true + +# Allow users to edit their own messages +edit_message = true + +[features.slack] +# Add emoji reaction when message is received (requires reactions:write OAuth scope) +reaction_on_message_received = false + +# Authorize users to spontaneously upload files with messages +[features.spontaneous_file_upload] + enabled = true + # Define accepted file types using MIME types + # Examples: + # 1. For specific file types: + # accept = ["image/jpeg", "image/png", "application/pdf"] + # 2. For all files of certain type: + # accept = ["image/*", "audio/*", "video/*"] + # 3. For specific file extensions: + # accept = { "application/octet-stream" = [".xyz", ".pdb"] } + # Note: Using "*/*" is not recommended as it may cause browser warnings + accept = ["*/*"] + max_files = 20 + max_size_mb = 500 + +[features.audio] + # Enable audio features + enabled = false + # Sample rate of the audio + sample_rate = 24000 + +[features.mcp] + # Enable Model Context Protocol (MCP) features + enabled = false + +[features.mcp.sse] + enabled = true + +[features.mcp.streamable-http] + enabled = true + +[features.mcp.stdio] + enabled = true + # Only the executables in the allow list can be used for MCP stdio server. + # Only need the base name of the executable, e.g. "npx", not "/usr/bin/npx". + # Please don't comment this line for now, we need it to parse the executable name. + allowed_executables = [ "npx", "uvx" ] + +[UI] +# Name of the assistant. +name = "Assistant" + +# default_theme = "dark" + +# layout = "wide" + +# default_sidebar_state = "open" + +# Description of the assistant. This is used for HTML tags. +# description = "" + +# Chain of Thought (CoT) display mode. Can be "hidden", "tool_call" or "full". +cot = "full" + +# Specify a CSS file that can be used to customize the user interface. +# The CSS file can be served from the public directory or via an external link. +custom_css = 'public/stylesheet.css' + +# Specify additional attributes for a custom CSS file +# custom_css_attributes = "media=\"print\"" + +# Specify a JavaScript file that can be used to customize the user interface. +# The JavaScript file can be served from the public directory. +custom_js = 'public/script.js' + +# The style of alert boxes. Can be "classic" or "modern". +alert_style = "classic" + +# Specify additional attributes for custom JS file +# custom_js_attributes = "async type = \"module\"" + +# Custom login page image, relative to public directory or external URL +# login_page_image = "/public/custom-background.jpg" + +# Custom login page image filter (Tailwind internal filters, no dark/light variants) +# login_page_image_filter = "brightness-50 grayscale" +# login_page_image_dark_filter = "contrast-200 blur-sm" + + +# Specify a custom meta image url. +# custom_meta_image_url = "https://chainlit-cloud.s3.eu-west-3.amazonaws.com/logo/chainlit_banner.png" + +# Load assistant logo directly from URL. +logo_file_url = "" + +# Load assistant avatar image directly from URL. +default_avatar_file_url = "" + +# Specify a custom build directory for the frontend. +# This can be used to customize the frontend code. +# Be careful: If this is a relative path, it should not start with a slash. +# custom_build = "./public/build" + +# Specify optional one or more custom links in the header. +# [[UI.header_links]] +# name = "Issues" +# display_name = "Report Issue" +# icon_url = "https://avatars.githubusercontent.com/u/128686189?s=200&v=4" +# url = "https://github.com/Chainlit/chainlit/issues" + +[meta] +generated_by = "2.6.7" diff --git a/litellm-thinking/public/favicon.svg b/litellm-thinking/public/favicon.svg new file mode 100644 index 000000000..b6fc81c83 --- /dev/null +++ b/litellm-thinking/public/favicon.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/litellm-thinking/public/logo_dark.png b/litellm-thinking/public/logo_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..208b415e7c3b529914bcf47ad4ba511715ca04cc GIT binary patch literal 57691 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 NF*C9}Q)b|L?|&MivqS&@ literal 0 HcmV?d00001 diff --git a/litellm-thinking/public/logo_light.png b/litellm-thinking/public/logo_light.png new file mode 100644 index 0000000000000000000000000000000000000000..208b415e7c3b529914bcf47ad4ba511715ca04cc GIT binary patch literal 57691 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 NF*C9}Q)b|L?|&MivqS&@ literal 0 HcmV?d00001 diff --git a/litellm-thinking/public/script.js b/litellm-thinking/public/script.js new file mode 100644 index 000000000..982fa9478 --- /dev/null +++ b/litellm-thinking/public/script.js @@ -0,0 +1,61 @@ +const alreadyCollapsed = new WeakSet(); + +function autoCollapseSteps(element) { + if (element.matches?.('button[id^="step-"]')) { + tryCollapse(element); + } + element.querySelectorAll?.('button[id^="step-"]').forEach((btn) => { + tryCollapse(btn); + }); +} + +function tryCollapse(btn) { + const isOpen = btn.getAttribute('data-state') === 'open'; + if ( + isOpen && + !alreadyCollapsed.has(btn) && + btn.querySelector('svg.lucide-chevron-up') // icon for expanded state + ) { + btn.click(); // close it + alreadyCollapsed.add(btn); + } +} + +function removeCopyButtons() { + document.querySelectorAll('button').forEach((button) => { + if (button.querySelector('.lucide-copy')) { + button.remove(); + } + }); +} + +removeCopyButtons(); + +const mutationObserver = new MutationObserver((mutationList) => { + for (const mutation of mutationList) { + if (mutation.type === 'childList') { + for (const node of mutation.addedNodes) { + if (node.nodeType === Node.ELEMENT_NODE) { + autoCollapseSteps(node); + } + } + } + } +}); + +mutationObserver.observe(document.body, { + childList: true, + subtree: true, +}); + +const copyButtonObserver = new MutationObserver(() => { + removeCopyButtons(); +}); + +copyButtonObserver.observe(document.body, { + childList: true, + subtree: true, +}); + +document.querySelectorAll('button[id^="step-"]').forEach(autoCollapseSteps); + diff --git a/litellm-thinking/public/stylesheet.css b/litellm-thinking/public/stylesheet.css new file mode 100644 index 000000000..416b76304 --- /dev/null +++ b/litellm-thinking/public/stylesheet.css @@ -0,0 +1,18 @@ +#theme-toggle, +#new-chat-button { + display: none !important; +} + +.watermark { + display: none !important; + visibility: hidden !important; + opacity: 0 !important; + pointer-events: none !important; + height: 0px !important; + width: 0px !important; + overflow: hidden !important; +} + +#chat-input:empty::before { + content: 'Hi, 👋🏾 How can I help ...'; +} diff --git a/litellm-thinking/readme.md b/litellm-thinking/readme.md new file mode 100644 index 000000000..61242c31a --- /dev/null +++ b/litellm-thinking/readme.md @@ -0,0 +1,33 @@ +--- +title: 'LiteLLM Thinking Models Integration' +tags: ['litellm', 'thinking', 'streaming'] +--- + +# LiteLLM Thinking Models Integration + +This repository demonstrates how to integrate thinking-enabled LLMs (like Qwen, DeepSeek-R1) with ChainLit using LiteLLM. + +## Description + +The integration showcases how to connect to any thinking-capable model through LiteLLM's unified API. The application captures and streams the model's internal reasoning process in real-time, allowing users to observe how the model thinks through problems step-by-step before providing final answers. + +### Function Definitions + +#### Thinking LLM Integration (`thinking_llm.py`) + +- `start_chat`: Initializes chat session with system prompt and message history +- `reasoning_step`: ChainLit step that captures and streams reasoning content +- `on_message`: Handles user messages, coordinates thinking display and final response streaming +- `client`: Configured LiteLLM client with partial application for consistent model parameters + +### Configuration +[!IMPORTANT] +Replace `.chainlit/config.toml` to `config.toml` to apply the custom CSS and JS. + +```python +# Example using ollama but can adopt to any given litellm +LLM_MODEL_NAME = "ollama/qwen3:latest" +API_BASE_URL = "http://localhost:11434" # Provider endpoint +``` + +The application separates the thinking process into a dedicated ChainLit step, allowing users to see the model's reasoning before the final response. diff --git a/litellm-thinking/requirements.txt b/litellm-thinking/requirements.txt new file mode 100644 index 000000000..0dfb000ec --- /dev/null +++ b/litellm-thinking/requirements.txt @@ -0,0 +1,2 @@ +chainlit +litellm