File size: 3,194 Bytes
d985074 e43bdda d985074 e43bdda 7a623cb e43bdda 7a623cb e43bdda 41e088c e43bdda 69395bf e523e8e d985074 69395bf d985074 69395bf d985074 69395bf d985074 69395bf d985074 e523e8e d661e6e e523e8e e43bdda e523e8e 1bf0303 a8597aa 7a623cb a8597aa 7a623cb d985074 |
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 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
import gradio as gr
from huggingface_hub import InferenceClient
import os
import time
import asyncio
from pipeline import PromptEnhancer
"""
For more information on `huggingface_hub` Inference API support, please check the docs: https://huggingface.co/docs/huggingface_hub/v0.22.2/en/guides/inference
"""
# client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
async def advancedPromptPipeline(InputPrompt, model="gpt-4o-mini", temperature=0.0):
if model == "gpt-4o":
i_cost=5/10**6
o_cost=15/10**6
elif model == "gpt-4o-mini":
i_cost=0.15/10**6
o_cost=0.6/10**6
enhancer = PromptEnhancer(model, temperature)
start_time = time.time()
advanced_prompt = await enhancer.enhance_prompt(InputPrompt, perform_eval=False)
elapsed_time = time.time() - start_time
"""return {
"model": model,
"elapsed_time": elapsed_time,
"prompt_tokens": enhancer.prompt_tokens,
"completion_tokens": enhancer.completion_tokens,
"approximate_cost": (enhancer.prompt_tokens*i_cost)+(enhancer.completion_tokens*o_cost),
"inout_prompt": input_prompt,
"advanced_prompt": advanced_prompt["advanced_prompt"],
}"""
return advanced_prompt["advanced_prompt"]
def respond(
message,
#history: list[tuple[str, str]],
#system_message,
#max_tokens,
#temperature,
#top_p,
):
#messages = [{"role": "system", "content": system_message}]
#for val in history:
# if val[0]:
# messages.append({"role": "user", "content": val[0]})
# if val[1]:
# messages.append({"role": "assistant", "content": val[1]})
#
#messages.append({"role": "user", "content": message})
response = ""
#for message in client.chat_completion(
# messages,
# max_tokens=max_tokens,
# stream=True,
# temperature=temperature,
# top_p=top_p,
#):
# token = message.choices[0].delta.content
# response += token
# yield response
"""
For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
"""
#demo = gr.ChatInterface(
#advancedPromptPipeline,
# respond,
#additional_inputs=[
#gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
#gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
#gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
#gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)",
# ),
#],
#)
demo = gr.Interface(fn=advancedPromptPipeline,
inputs=[
gr.Textbox(lines=20, placeholder="Enter your prompt", label="Input Prompt"),
gr.Radio(["gpt-4o-mini", "gpt-4o"], value="gpt-4o-mini", label="Select Model"),
gr.Slider(minimum=0.0, maximum=1.0, value=0.0, step=0.1, label="Temperature")
],
outputs=[gr.Textbox(lines=30, label="Advanced Prompt")])
if __name__ == "__main__":
demo.launch() |