File size: 3,336 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
ae07b8b
7a623cb
 
a8597aa
ae07b8b
 
 
 
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
103
104
105
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=10, placeholder="Enter your prompt", label="Input Prompt", min_width=100),
                        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=20, label="Advanced Prompt", show_copy_button=True, autoscroll=False, min_width=220),
                        ]
                   )


if __name__ == "__main__":
    demo.launch()