rsaketh02 commited on
Commit
15f7e2f
1 Parent(s): 1a52b41

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +60 -0
  2. requirements.txt +6 -0
app.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import openai
3
+ from langchain_openai import ChatOpenAI
4
+ from langchain_core.output_parsers import StrOutputParser
5
+ from langchain_core.prompts import ChatPromptTemplate
6
+
7
+
8
+ import os
9
+ from dotenv import load_dotenv
10
+
11
+
12
+ load_dotenv()
13
+
14
+
15
+ ## Langsmith Tracking
16
+ os.environ['LANGCHAIN_API_KEY'] = os.getenv('LANGCHAIN_API_KEY')
17
+ os.environ['LANGCHAIN_TRACING_V2'] = 'true'
18
+ os.environ['LANGCHAIN_PROJECT'] = "Simple Q&A Chatbot With OpenAI"
19
+
20
+ ## Prompt Template
21
+ prompt = ChatPromptTemplate(
22
+ [
23
+ ("system", "You are a helpful assistant. Please answer the user's questions to the best of your ability."),
24
+ ("user", "Question:{question}"),
25
+ ]
26
+ )
27
+
28
+
29
+ def generate_response(question, api_key, llm, temperature, max_tokens):
30
+ openai.api_key = api_key
31
+ llm = ChatOpenAI(model=llm,temperature=temperature,max_tokens=max_tokens)
32
+ output_parser = StrOutputParser()
33
+ chain = prompt|llm|output_parser
34
+ answer = chain.invoke({'question':question})
35
+ return answer
36
+
37
+
38
+ ## Title of the chat
39
+ st.title('Enhanced Q&A Chatbot With OpenAI')
40
+
41
+ ## Sidebar for settings
42
+ st.sidebar.title('Settings')
43
+ api_key = st.sidebar.text_input("Enter your Open AI API Key:", type="password")
44
+
45
+ ## Dropdown to select various OpenAI models
46
+ llm = st.sidebar.selectbox('Select OpenAI Model', ['gpt-4o-mini', 'gpt-4-turbo', 'gpt-4o'])
47
+
48
+ ## Adjust response parameters
49
+ temperature = st.sidebar.slider('Temperature', min_value=0.0, max_value=1.0, value=0.7)
50
+ max_tokens = st.sidebar.slider('Max Tokens', min_value=50, max_value=300, value=150)
51
+
52
+ ## Main Interface for user input
53
+ st.write('Ask me anything!')
54
+ user_input = st.text_input('Enter your question here:')
55
+
56
+ if user_input:
57
+ response = generate_response(user_input, api_key, llm, temperature, max_tokens)
58
+ st.write(response)
59
+ else:
60
+ st.write('Please enter a question to get started!')
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ langchain-openai
2
+ langchain
3
+ python-dotenv
4
+ langchain_community
5
+ langchain_core
6
+ streamlit