NeuralInternet's picture
Duplicate from Defalt-404/Top-VS-Benchmark_Bittensor
834b82c
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)