File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ import streamlit as st
2+ import openai
3+
4+ # Default backend URL
5+ DEFAULT_BACKEND_URL = "http://localhost:11434/v1"
6+
7+ # UI for setting the backend URL
8+ st .title ("Chatbot using Ollama" )
9+ st .sidebar .header ("Settings" )
10+ backend_url = st .sidebar .text_input ("Backend URL" , DEFAULT_BACKEND_URL )
11+
12+ # Initialize OpenAI client with user-defined backend URL
13+ client = openai .OpenAI (base_url = backend_url )
14+
15+ # Chat session state
16+ if "messages" not in st .session_state :
17+ st .session_state .messages = []
18+
19+ # Display chat history
20+ for message in st .session_state .messages :
21+ with st .chat_message (message ["role" ]):
22+ st .markdown (message ["content" ])
23+
24+ # User input
25+ if prompt := st .chat_input ("Ask something..." ):
26+ # Add user message to session state
27+ st .session_state .messages .append ({"role" : "user" , "content" : prompt })
28+ with st .chat_message ("user" ):
29+ st .markdown (prompt )
30+
31+ # Call the backend API
32+ try :
33+ response = client .chat .completions .create (
34+ model = "llama3.2:1b" , # Change this based on available models
35+ messages = st .session_state .messages
36+ )
37+ reply = response .choices [0 ].message .content
38+ except Exception as e :
39+ reply = f"Error: { e } "
40+
41+ # Display assistant response
42+ with st .chat_message ("assistant" ):
43+ st .markdown (reply )
44+ st .session_state .messages .append ({"role" : "assistant" , "content" : reply })
You can’t perform that action at this time.
0 commit comments