Building a Large Language Model Chat Application with Streamlit

Getting Started with LLM Chat Applications

Developing a functional chat application using large language models (LLMs) can be achieved quickly with the right tools. Streamlit simplifies the process by allowing rapid prototyping and deployment, especially for developers less familiar with frontend development.

Prerequisites

Before starting, ensure you have the following set up:

  • Python 3.9 or later
  • Tencent Cloud API access with valid SecretID and SecretKey
  • Required Python packages installed via pip:
pip install tencentcloud-sdk-python streamlit

Basic Implementation

Below is a streamlined example demonstrating how to integrate the Tencent Cloud Hunyuan API with a Streamlit chat interface.

import json
import os
import streamlit as st
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.hunyuan.v20230901 import hunyuan_client, models

# Set up environment variables for credentials
os.environ['TENCENT_SECRET_ID'] = 'your_secret_id'
os.environ['TENCENT_SECRET_KEY'] = 'your_secret_key'

# Initialize credentials and client
cred = credential.Credential(
    os.environ.get("TENCENT_SECRET_ID"),
    os.environ.get("TENCENT_SECRET_KEY")
)
client_profile = ClientProfile()
client_profile.httpProfile.pre_conn_pool_size = 3
client = hunyuan_client.HunyuanClient(cred, "ap-beijing", client_profile)

st.title("Hunyuan Chat Assistant")

def generate_response():
    request = models.ChatStdRequest()
    request.Messages = [
        {"Role": msg["role"], "Content": msg["content"]}
        for msg in st.session_state.messages
    ]
    response = client.ChatStd(request)
    for event in response:
        data = json.loads(event['data'])
        for choice in data['Choices']:
            yield choice['Delta']['Content']

if "messages" not in st.session_state:
    st.session_state.messages = []

for msg in st.session_state.messages:
    with st.chat_message(msg["role"]):
        st.markdown(msg["content"])

user_input = st.chat_input("How can I help?")
if user_input:
    st.session_state.messages.append({"role": "user", "content": user_input})
    with st.chat_message("user"):
        st.markdown(user_input)
    with st.chat_message("assistant"):
        reply = st.write_stream(generate_response())
    st.session_state.messages.append({"role": "assistant", "content": reply})

To run the application, use the command:

streamlit run app.py

This implementation provides a basic chat interface with streaming responses from the Hunyuan LLM API. The structure can be extended with additional features such as message history management, custom styling, or integration with other APIs.

Tags: streamlit LLM Tencent Cloud Hunyuan API python

Posted on Fri, 03 Jul 2026 17:52:36 +0000 by scnov