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}')