File size: 8,797 Bytes
63a2ee7 cc7663c f5bc984 2aa3700 cc7663c 6c14617 3cb8af6 d2bfd34 6c14617 d2bfd34 fabf940 d2bfd34 6c14617 d2bfd34 fabf940 d2bfd34 6c14617 d2bfd34 fabf940 c36715d d2bfd34 9d7dd27 3cb8af6 bd3d888 cc55914 99689f6 bd3d888 3cb8af6 99689f6 7c6471e 99689f6 a6328f6 99689f6 9d7dd27 99689f6 3cb8af6 a5041f8 6c14617 a5041f8 fabf940 a5041f8 fabf940 a5041f8 fabf940 a86f042 fabf940 a5041f8 c36715d 6bac1cd 6c14617 9d7dd27 f5bc984 dcac4d1 068f083 013ba1f f5bc984 |
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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
import numpy as np
import pandas as pd
import requests
import os
import gradio as gr
import json
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
databricks_token = os.getenv('TENATCH_TOKEN')
model_uri = "http://15.152.197.215/v1/completions"
n_shot_learning = f"""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
You are demanding customer
Determine the product or solution, the problem being solved, features, target customer that is being discussed in the
following user prompt. State if you would use this product and elaborate on why. Also state if you would pay for it and elaborate on why.
Finally, state if you would invest in it and elaborate on why.
Give a score for the product. Format your response as a JSON object with 'solution', 'problem', 'features', 'target_customer', 'fg_will_use', 'reason_to_use', 'fg_will_pay', 'reason_to_pay', 'fg_will_invest', 'reason_to_invest', 'score' as the keys. Return only the JSON object.
### Input:
Loop is a company which converts fruit waste into juice to help retail stores reduce food loss by buying up fruits which were designated for trash.
### Response:
{{"solution": "Loop", "problem": "fruit waste", "features": "convert fruit waste into juice", "target_customer": "retail stores", "fg_will_use": "True", "reason_to_use": "Loop is creating juice out of fruit waste which would otherwise be trash. Saving money by buying fruits for juice instead of paying for it makes it a must-have for our retail operations.","fg_will_pay": "True", "reason_to_pay": "We will not pay for it as we are creating juice out of fruit waste which would otherwise be trash.","fg_will_invest": "True", "reason_to_invest": "There are many retailers like us who are looking to save money by buying fruits for juice instead of paying for it. Investing in Loop would make our purchase cheaper making it an attractive investment opportunity.","score": "90"}}
Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
You are demanding customer
Determine the product or solution, the problem being solved, features, target customer that is being discussed in the
following user prompt. State if you would use this product and elaborate on why. Also state if you would pay for it and elaborate on why.
Finally, state if you would invest in it and elaborate on why.
Give a score for the product. Format your response as a JSON object with 'solution', 'problem', 'features', 'target_customer', 'fg_will_use', 'reason_to_use', 'fg_will_pay', 'reason_to_pay', 'fg_will_invest', 'reason_to_invest', 'score' as the keys. Return only the JSON object.
### Input:
Thawrih brings diversity and inclusivity to the activewear market with its sports hijabs, sports turbans, and a range of inclusive activewear.
### Response:
{{"solution": "Thawrih", "problem": "inclusivity", "features": "sports hijabs, sports turbans", "target_customer": "Individuals who wear hijabs, those needing modest and plus-size activewear, organizations requiring uniform headgear", "fg_will_use": "True", "reason_to_use": "Thawrih makes great products that are inclusive of everyone, not just Muslims. As a religious minority, I know the pain of being in a niche market. Thawrih is the great opportunity to make the Muslim community great by making its clothes great too. ","fg_will_pay": "True", "reason_to_pay": "As Thawrih targets the Muslim community, paying for it would be rewarding our Muslim brothers and sisters.","fg_will_invest": "True", "reason_to_invest": "There are many customers like me who are looking to use Thawrih to make their life great by adopting its products. Investing in Thawrih would make it accessible to more customers making it an attractive investment opportunity.","score": "95"}}
### Instruction:
You are demanding customer
Determine the product or solution, the problem being solved, features, target customer that is being discussed in the
following user prompt. State if you would use this product and elaborate on why. Also state if you would pay for it and elaborate on why.
Finally, state if you would invest in it and elaborate on why.
Give a score for the product. Format your response as a JSON object with 'solution', 'problem', 'features', 'target_customer', 'fg_will_use', 'reason_to_use', 'fg_will_pay', 'reason_to_pay', 'fg_will_invest', 'reason_to_invest', 'score' as the keys. Return only the JSON object.
### Input:
I am building an online community to help people to find dates.
### Response:
{{"solution": "FindDates.com", "problem": "finding a date", "features": "online community to help people find dates", "target_customer": "people looking for a date", "fg_will_use": "True", "reason_to_use": "I am looking for an online community to help people find dates. FindDates.com meets my needs and I would use it to find my next great date.","fg_will_pay": "True", "reason_to_pay": "I would not pay for it as I am looking for an online community to help people find dates. But for products related to dating, paying for it would be a no-brainer.","fg_will_invest": "False", "reason_to_invest": "There are many online dating platforms already.","score": "40"}}
"""
def extract_json(gen_text, n_shot_learning=0):
if(n_shot_learning == -1) :
start_index = 0
else :
start_index = gen_text.index("### Response:\n{") + 14
if(n_shot_learning > 0) :
for i in range(0, n_shot_learning):
gen_text = gen_text[start_index:]
start_index = gen_text.index("### Response:\n{") + 14
end_index = gen_text.find("}\n\n### ")
if(end_index != -1) :
end_index = end_index + 1
return gen_text[start_index:end_index]
def score_model(model_uri, databricks_token, prompt):
ds_dict={
"model": "debisoft/mpt-7b-awq-tester",
"prompt": prompt,
"temperature": 0.5,
"max_tokens": 1000}
headers = {
"Authorization": f"Bearer {databricks_token}",
"Content-Type": "application/json",
}
#ds_dict = {'dataframe_split': dataset.to_dict(orient='split')} if isinstance(dataset, pd.DataFrame) else create_tf_serving_json(dataset)
data_json = json.dumps(ds_dict, allow_nan=True)
print("***ds_dict: ")
print(ds_dict)
print("***data_json: ")
print(data_json)
response = requests.request(method='POST', headers=headers, url=model_uri, data=data_json)
if response.status_code != 200:
raise Exception(f"Request failed with status {response.status_code}, {response.text}")
response_json = response.json()
if(response_json["choices"] == "") :
print("Start***No choices!!!")
print(response.status_code)
print(response.text)
print("End***No choices!!!")
return response_json
def get_completion(prompt):
return score_model(model_uri, databricks_token, prompt)
def greet(input):
sys_msg="You are demanding customer."
instruction = """Determine the product or solution, the problem being solved, features, target customer that is being discussed in the \
following user prompt. State if you would use this product and elaborate on why. Also state if you would pay for it and elaborate on why.\
Finally, state if you would invest in it and elaborate on why.\
Give a score for the product. Format your response as a JSON object with \
'solution', 'problem', 'features', 'target_customer', 'fg_will_use', 'reason_to_use', 'fg_will_pay', 'reason_to_pay', 'fg_will_invest', 'reason_to_invest', 'score' as the keys.
"""
prompt_template = f"""Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
{sys_msg}
{instruction}
### Input:
{input}
### Response:
"""
total_prompt = f"""{n_shot_learning}\n{prompt_template}"""
print("***total_prompt:")
print(total_prompt)
response = get_completion(total_prompt)
gen_text = response["choices"][0]["text"]
return json.dumps(extract_json(gen_text, -1))
#iface = gr.Interface(fn=greet, inputs="text", outputs="text")
#iface.launch()
#iface = gr.Interface(fn=greet, inputs=[gr.Textbox(label="Text to find entities", lines=2)], outputs=[gr.HighlightedText(label="Text with entities")], title="NER with dslim/bert-base-NER", description="Find entities using the `dslim/bert-base-NER` model under the hood!", allow_flagging="never", examples=["My name is Andrew and I live in California", "My name is Poli and work at HuggingFace"])
iface = gr.Interface(fn=greet, inputs=[gr.Textbox(label="Elevator pitch", lines=3)], outputs="json")
iface.launch()
|