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()