Spaces:
Sleeping
Sleeping
| 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}') | |