Test1 / app.py
Akrshow's picture
Update app.py
d202271 verified
Raw
History Blame Contribute Delete
2.49 kB
import streamlit as st
import requests
import datetime
import openai
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
import os
from dotenv import load_dotenv
load_dotenv()
# Prompt Template
prompt = ChatPromptTemplate.from_messages(
[
("system", "You are a helpful. Please respond to the user's questions."),
("user", "Question: {question}")
]
)
def generate_response(question, openai_api_key, model, temperature, max_tokens):
model = ChatOpenAI(model_name=model, temperature=temperature, max_tokens=max_tokens, openai_api_key=openai_api_key)
output_parser = StrOutputParser()
chain = prompt | model | output_parser
answer = chain.invoke({'question': question})
return answer
st.title("Q&A Chatbot with OpenAI")
# Sidebar
st.sidebar.title("Settings")
openai_api_key = st.sidebar.text_input("Enter your OpenAI API Key", type="password")
# Dropdown for OpenAI models
model = st.sidebar.selectbox("Select OpenAI Model", ["gpt-4o", "gpt-4-turbo", "gpt-4"])
# Slider for temperature
temperature = st.sidebar.slider("Temperature", 0.0, 1.0, 0.5)
# Slider for max tokens
max_tokens = st.sidebar.slider("Max Tokens", 50, 500, 100)
# Text Input for user question
question = st.text_input("Enter your question")
if st.button("Get Answer"):
if openai_api_key:
answer = generate_response(question, openai_api_key, model, temperature, max_tokens)
st.write(answer)
else:
st.write("Please enter your OpenAI API Key")
# 現在の使用量を取得
usage = 0
#openai.billing.usage()
print(usage)
st.write(usage)
x = st.slider('Select a value')
st.write(x, 'Three is', x * x * x)
# Title of the app
st.title('単純な計算機')
# Create input fields for numbers
num1 = st.number_input('Enter first number:', value=0.0)
num2 = st.number_input('Enter second number:', value=0.0)
# Create selectbox for operations
operation = st.selectbox('Choose operation:', ('足し算', 'Subtract', 'Multiply', 'Divide'))
# Define the operations
if operation == '足し算':
result = num1 + num2
elif operation == 'Subtract':
result = num1 - num2
elif operation == 'Multiply':
result = num1 * num2
elif operation == 'Divide':
if num2 != 0:
result = num1 / num2
else:
result = 'Error: Division by zero'
# Display the result
st.write(f'The result of {operation} is: {result}')