Spaces:
Sleeping
Sleeping
File size: 3,518 Bytes
20fefb1 fb664e1 20fefb1 28014bc ad51725 20fefb1 92d45bc d312778 a6ca9f1 d312778 ad51725 42d6aab d312778 bb97c16 086dd5a 2754cd5 ad51725 2754cd5 92d45bc 2754cd5 92d45bc 2754cd5 20fefb1 ad51725 20fefb1 ad51725 20fefb1 39a4d43 20fefb1 a6ca9f1 20fefb1 39a4d43 20fefb1 fb664e1 20fefb1 fb664e1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
import streamlit as st
import json
from transformers import pipeline
@st.cache_resource
def load_model(model_name):
return pipeline("text-generation", model=model_name)
def main():
if "generated_widget_id" not in st.session_state:
st.session_state["generated_widget_id"] = None
st.title("Prebid Config Generator")
st.write("Enter a Prebid config setting, such as 'bidderTimeout', and get a generated Prebid config output starting from that setting onward. Using '{' will generate a Prebid config from the beginning. The model currently has a capped output of 1000 characters.")
st.subheader("Intended Uses")
st.write("This model is designed to assist publishers in understanding and exploring how most and advanced publishers configure their Prebid settings. It can serve as a valuable reference to gain insights into common configurations, best practices, and different approaches used by publishers across various domains. The model should be seen as a helpful tool to gain inspiration and understanding of common Prebid settings but not as a substitute for thorough testing and manual review of the final configurations.")
st.write("To learn more about the default model, visit the [pbjsGPT2 model page](https://huggingface.co/PeterBrendan/pbjs_gpt2). To learn more about the advanced model, visit the [pbjsGPT2v2 model page](https://huggingface.co/PeterBrendan/pbjsGPT2v2). You can also refer to the [official Prebid Documentation on pbjs.setConfig](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html) for more information. There is a [Prebid Modules](https://huggingface.co/spaces/PeterBrendan/Prebid_Modules) version as well.")
st.write("*Note:* The model may take a moment to generate the output, typically up to 60 seconds. It will refresh after each prompt or button click, so please use your inputs judiciously. Thank you for your patience!")
# Default prompts
default_prompts = ["{", "bidderTimeout", "bidderSequence", "Usebidcache", "customPriceBucket", "coppa"]
# Create a selectbox for default prompts
default_prompt = st.selectbox("Choose a default prompt:", default_prompts)
# Create a text input field for custom prompt
custom_prompt = st.text_input("Enter a custom prompt:", "")
# Check if a default prompt is selected
if default_prompt:
user_input = default_prompt
else:
user_input = custom_prompt
# Check if the user input is empty
if user_input:
# Select the model based on the user's choice
model_name = "PeterBrendan/pbjsGPT2v2" if st.button("Advanced Mode") else "PeterBrendan/pbjs_gpt2"
# Load the Hugging Face model
generator = load_model(model_name)
# Display 'Generating Output' message
output_placeholder = st.empty()
with output_placeholder:
st.write("Generating Output...")
# Generate text based on user input
generated_text = generator(user_input, max_length=1000, num_return_sequences=1)[0]["generated_text"]
# Clear 'Generating Output' message and display the generated text
output_placeholder.empty()
st.write("Generated Text:")
try:
parsed_json = json.loads(generated_text)
beautified_json = json.dumps(parsed_json, indent=4)
st.code(beautified_json, language="json")
except json.JSONDecodeError:
st.write(generated_text)
# Run the app
if __name__ == "__main__":
main()
|