Spaces:
Runtime error
Runtime error
import os | |
import openai | |
from openai.error import OpenAIError | |
import datetime | |
import gradio as gr | |
import json | |
from jinja2 import Template | |
import requests | |
# Configuration variables | |
airtable_api_key = os.environ.get('AIRTABLE_API_KEY') | |
examples_table_name = 'tblu7sraOEmRgEGkp' | |
#Airtable Base ID | |
base_id = 'appcUK3hUWC7GM2Kb' | |
# Define the style and content for the response field | |
label_text = "NILI Response" | |
color = "#6562F4" | |
background_color = "white" | |
border_radius = "10px" | |
response_label = f'<span style="display: inline-block; position: relative; z-index: var(--layer-4); border: solid var(--block-title-border-width) var(--block-title-border-color); border-radius: var(--block-title-radius); background: var(--block-title-background-fill); padding: var(--block-title-padding); color: var(--block-title-text-color); font-weight: var(--block-title-text-weight); font-size: var(--block-title-text-size); line-height: var(--line-sm); margin-bottom: var(--spacing-lg);">{label_text}</span>' | |
#Name of the prompt temlate record | |
#prompt_name = "NILI_v1" | |
#App name for user login logging | |
app="NILI_Mobile" | |
#Header for the Airtable requests | |
headers = { | |
"Authorization": f"Bearer {airtable_api_key}", | |
"Content-Type": "application/json", | |
"Accept": "application/json", | |
} | |
def get_examples(): | |
ui_examples = [] | |
airtable_endpoint = f'https://api.airtable.com/v0/{base_id}/{examples_table_name}' | |
params = { | |
'filterByFormula': f'app = "{app}"', | |
'fields[]': 'nil_question' | |
} | |
# Send your request and parse the response | |
response = requests.get(airtable_endpoint, headers=headers,params=params) | |
data = json.loads(response.text) | |
# Check for errors | |
response.raise_for_status() | |
# Initialize a nested list to store nil_questions | |
nested_nil_questions = [] | |
for record in data['records']: | |
nil_question = record['fields']['nil_question'] | |
ui_examples.append(nil_question) | |
#print(ui_examples) | |
return ui_examples | |
#Gradio UI | |
CIMStheme = gr.themes.Soft().set(button_primary_background_fill='#6562F4') | |
with gr.Blocks(CIMStheme) as iface: | |
with gr.Row(): | |
with gr.Column(): | |
gr.Markdown(value="<H2 style='text-align: center;'>NILI - Powered by CIMS.AI</h2>") | |
with gr.Row(): | |
with gr.Column(variant='panel'): | |
question_tbox= gr.components.Textbox(lines=3, placeholder="Enter your question here", label="NIL Question",info="Depending the scope of your question, results may take 30-60 sec.",interactive=True) | |
with gr.Row(variant='panel'): | |
with gr.Column(): | |
examples_cmpt= gr.Examples(examples=get_examples(),inputs=question_tbox,label="Sample NIL questions - Click to select one",api_name="load_examples",examples_per_page=2) | |
with gr.Row(): | |
with gr.Column(): | |
gr.Markdown(value="[Ask Questions/Provide Feedback](https://discord.com/channels/1168589934244929647/1168589934244929650)") | |
with gr.Row(): | |
with gr.Column(): | |
gr.HTML('<center><i>© 2023 Collegiate Influencer Marketing Systems, Inc.</i><br>CIMS.AI, CIMS.AI logo, NILI, NILI logo, and EzNIL are trademarks of Collegiate Influencer Marketing Systems, Inc.</center>') | |
iface.launch() |