add local model playground

This commit is contained in:
Cristiano Ferreira
2023-05-14 16:39:39 +01:00
parent 3a25f58f1f
commit adb07a56ff

81
wt2_playground_local.py Normal file
View File

@@ -0,0 +1,81 @@
import openai
import os
from dotenv import load_dotenv
from llama_cpp import Llama, ChatCompletionMessage
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
llm = Llama(model_path="models/gpt4all-converted.bin", n_ctx=500)
def generate_summarizer(
max_tokens,
temperature,
top_p,
frequency_penalty,
question_type,
question,
answer
):
messages = [
ChatCompletionMessage(role="system", content="You are a IELTS examiner."),
ChatCompletionMessage(role="system",
content=f"The question you have to grade is of type {question_type} and is the following: {question}"),
ChatCompletionMessage(role="system", content="Please provide a JSON object response with the overall grade and breakdown grades, "
"formatted as follows: {'overall': 7.0, 'task_response': {'Task Achievement': 8.0, "
"'Coherence and Cohesion': 6.5, 'Lexical Resource': 7.5, 'Grammatical Range and Accuracy': "
"6.0}}"),
ChatCompletionMessage(role="system",
content="Don't give explanations for the grades, just provide the json with the grades."),
ChatCompletionMessage(role="user",
content=f"Evaluate this answer according to ielts grading system: {answer}")
]
output = llm.create_chat_completion(messages, max_tokens=50)
print(output)
return output
import streamlit as st
# Set the application title
st.title("GPT-3.5 IELTS Examiner")
# qt_col, q_col = st.columns(2)
# Selection box to select the question type
# with qt_col:
question_type = st.selectbox(
"What is the question type?",
(
"Writing Task 2"
),
)
# Provide the input area for question to be answered
# with q_col:
question = st.text_area("Enter the question:", height=100)
# Provide the input area for text to be summarized
answer = st.text_area("Enter the answer:", height=100)
# Initiate two columns for section to be side-by-side
# col1, col2 = st.columns(2)
# Slider to control the model hyperparameter
# with col1:
token = st.slider("Token", min_value=0.0, max_value=2000.0, value=1000.0, step=1.0)
temp = st.slider("Temperature", min_value=0.0, max_value=1.0, value=0.7, step=0.01)
top_p = st.slider("Top_p", min_value=0.0, max_value=1.0, value=0.9, step=0.01)
f_pen = st.slider("Frequency Penalty", min_value=-1.0, max_value=1.0, value=0.5, step=0.01)
# Showing the current parameter used for the model
# with col2:
with st.expander("Current Parameter"):
st.write("Current Token :", token)
st.write("Current Temperature :", temp)
st.write("Current Nucleus Sampling :", top_p)
st.write("Current Frequency Penalty :", f_pen)
# Creating button for execute the text summarization
if st.button("Grade"):
st.write(generate_summarizer(token, temp, top_p, f_pen, question_type, question, answer))