Spaces:
Runtime error
Runtime error
import gradio as gr | |
import json | |
import ssl | |
import http.client | |
def get_api_key(): | |
context = ssl.create_default_context() | |
context.check_hostname = True | |
conn = http.client.HTTPSConnection("test.neuralinternet.ai", context=context) | |
conn.request("GET", "/admin/api-keys/") | |
api_key_resp = conn.getresponse() | |
api_key_string = api_key_resp.read().decode("utf-8").replace("\n", "").replace("\t", "") | |
api_key_json = json.loads(api_key_string) | |
api_key = api_key_json[0]['api_key'] | |
conn.close() | |
return api_key | |
def generate_top_response(system_prompt,model_input, api_key): | |
payload = json.dumps( | |
{"top_n": 100, "messages": [{"role": "system", "content": system_prompt},{"role": "user", "content": model_input}]} | |
) | |
headers = { | |
"Content-Type": "application/json", | |
"Authorization": f"Bearer {api_key}", | |
"Endpoint-Version": "2023-05-19", | |
} | |
context = ssl.create_default_context() | |
context.check_hostname = True | |
conn = http.client.HTTPSConnection("test.neuralinternet.ai", context=context) | |
conn.request("POST", "/chat", payload, headers) | |
response = conn.getresponse() | |
utf_string = response.read().decode("utf-8").replace("\n", "").replace("\t", "") | |
print(utf_string) | |
json_resp = json.loads(utf_string) | |
conn.close() | |
for choice in json_resp['choices']: | |
uid = choice['uid'] | |
return uid, choice['message']['content'] | |
def generate_benchmark_response(system_prompt, model_input, api_key): | |
context = ssl.create_default_context() | |
context.check_hostname = True | |
conn = http.client.HTTPSConnection("test.neuralinternet.ai", context=context) | |
conn.request("GET", "/top_miner_uids") | |
benchmark_uid_resp = conn.getresponse() | |
benchmark_uid_string = benchmark_uid_resp.read().decode("utf-8").replace("\n", "").replace("\t", "") | |
benchmark_uid_json = json.loads(benchmark_uid_string) | |
conn.close() | |
payload = json.dumps( | |
{"uids": benchmark_uid_json , "messages": [{"role": "system", "content": system_prompt},{"role": "user", "content": model_input}]} | |
) | |
headers = { | |
"Content-Type": "application/json", | |
"Authorization": f"Bearer {api_key}", | |
"Endpoint-Version": "2023-05-19", | |
} | |
conn = http.client.HTTPSConnection("test.neuralinternet.ai", context=context) | |
conn.request("POST", "/chat", payload, headers) | |
response = conn.getresponse() | |
utf_string = response.read().decode("utf-8").replace("\n", "").replace("\t", "") | |
json_resp = json.loads(utf_string) | |
#print(utf_string) | |
conn.close() | |
for choice in json_resp['choices']: | |
uid = choice['uid'] | |
model_resp = choice['message']['content'] | |
return uid, model_resp | |
def dynamic_function(system_prompt, prompt): | |
if len(system_prompt) == 0: | |
system_prompt = "You are an AI Assistant, created by bittensor and powered by NI(Neural Internet). Your task is to provide consise response to user's prompt" | |
api_key = get_api_key() | |
top_uid, top_response = generate_top_response(system_prompt, prompt, api_key) | |
benchmark_uid, benchmark_response = generate_benchmark_response(system_prompt, prompt, api_key) | |
return f"TOP_{top_uid}: {top_response}\n\n\nBenchmark_{benchmark_uid}:{benchmark_response}" | |
interface = gr.Interface( | |
fn=dynamic_function, | |
inputs=[ | |
gr.inputs.Textbox(label="System Prompt", optional=True), | |
gr.inputs.Textbox(label="Enter your question") | |
], | |
outputs=gr.outputs.Textbox(label="Responses"), | |
title="Bittensor Compare Util", | |
) | |
# Launch the Gradio Interface | |
interface.launch(share=False, enable_queue=True) | |