MatteoScript commited on
Commit
efdbc4b
·
verified ·
1 Parent(s): 0462cdd

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +41 -23
main.py CHANGED
@@ -39,6 +39,7 @@ class InputData(BaseModel):
39
  class InputDataAsync(InputData):
40
  NumeroGenerazioni: int = 1
41
  StringaSplit: str = '********'
 
42
 
43
  class PostSpazio(BaseModel):
44
  nomeSpazio: str
@@ -140,8 +141,6 @@ async def make_request(session, token, data, url):
140
  return result_data
141
 
142
  async def CreaListaInput(input_data):
143
- input_strings = input_data.input.split(input_data.StringaSplit)
144
- numerocaratteriSPLIT = 2000
145
  if input_data.instruction.startswith("http"):
146
  try:
147
  resp = requests.get(input_data.instruction)
@@ -153,11 +152,11 @@ async def CreaListaInput(input_data):
153
  lista_dizionari = json.loads(input_data.instruction)
154
  nuova_lista_dizionari = []
155
  if lista_dizionari and "Titolo" in lista_dizionari[0]:
156
- nuova_lista_dizionari = DividiInstructionJSON(lista_dizionari)
157
  else:
158
- nuova_lista_dizionari = DividiInstructionText(input_data.instruction, input_data.StringaSplit)
159
  except json.JSONDecodeError:
160
- nuova_lista_dizionari = DividiInstructionText(input_data.instruction, input_data.StringaSplit)
161
 
162
  return nuova_lista_dizionari
163
 
@@ -168,9 +167,9 @@ async def split_at_space_or_dot(input_string, length):
168
  return indice_divisione + 1
169
 
170
 
171
- async def DividiInstructionJSON(lista_dizionari):
172
- nuova_lista_dizionari = []
173
- numerocaratteriSPLIT = 2000
174
  for dizionario in lista_dizionari:
175
  titolo = dizionario["Titolo"]
176
  testo_completo = dizionario["Testo"]
@@ -188,13 +187,29 @@ async def DividiInstructionJSON(lista_dizionari):
188
  if len(testo_completo) > 0:
189
  nuovo_dizionario = {"Titolo": titolo, "Testo": testo_completo}
190
  nuova_lista_dizionari.append(nuovo_dizionario)
191
- return nuova_lista_dizionari
 
 
 
 
 
 
 
 
 
 
 
 
 
 
192
 
193
 
194
- async def DividiInstructionText(instruction, StringaSplit):
195
- input_str = instruction
 
 
 
196
  sottostringhe = []
197
- numerocaratteriSPLIT = 2000
198
  indice_inizio = 0
199
  if len(input_str) > numerocaratteriSPLIT:
200
  while indice_inizio < len(input_str):
@@ -207,25 +222,28 @@ async def DividiInstructionText(instruction, StringaSplit):
207
  sottostringhe.append(input_str)
208
  testoSeparato = StringaSplit.join(sottostringhe)
209
  instruction_strings = testoSeparato.split(StringaSplit)
210
- return instruction_strings
211
-
212
-
213
- async def GeneraTestoAsync(url, input_data):
214
- token = os.getenv('TOKEN')
215
- async with aiohttp.ClientSession() as session:
216
- ListaInput = CreaListaInput(input_data)
217
- tasks = []
218
- for input_string in input_strings:
219
  data = {
220
  'input': input_string.strip(),
 
221
  'temperature': input_data.temperature,
222
  'max_new_tokens': input_data.max_new_tokens,
223
  'top_p': input_data.top_p,
224
  'repetition_penalty': input_data.repetition_penalty,
225
  'systemRole': input_data.systemRole,
226
- 'systemStyle': input_data.systemStyle,
227
- 'instruction': input_data.instruction
228
  }
 
 
 
 
 
 
 
 
 
 
229
  tasks.extend([make_request(session, token, data, url) for _ in range(input_data.NumeroGenerazioni)])
230
  return await asyncio.gather(*tasks)
231
 
 
39
  class InputDataAsync(InputData):
40
  NumeroGenerazioni: int = 1
41
  StringaSplit: str = '********'
42
+ NumeroCaratteriSplitInstruction: int = 30000
43
 
44
  class PostSpazio(BaseModel):
45
  nomeSpazio: str
 
141
  return result_data
142
 
143
  async def CreaListaInput(input_data):
 
 
144
  if input_data.instruction.startswith("http"):
145
  try:
146
  resp = requests.get(input_data.instruction)
 
152
  lista_dizionari = json.loads(input_data.instruction)
153
  nuova_lista_dizionari = []
154
  if lista_dizionari and "Titolo" in lista_dizionari[0]:
155
+ nuova_lista_dizionari = DividiInstructionJSON(lista_dizionari, input_data)
156
  else:
157
+ nuova_lista_dizionari = DividiInstructionText(input_data)
158
  except json.JSONDecodeError:
159
+ nuova_lista_dizionari = DividiInstructionText(input_data)
160
 
161
  return nuova_lista_dizionari
162
 
 
167
  return indice_divisione + 1
168
 
169
 
170
+ def DividiInstructionJSON(lista_dizionari, input_data):
171
+ ListaInput = []
172
+ numerocaratteriSPLIT = input_data.NumeroCaratteriSplitInstruction
173
  for dizionario in lista_dizionari:
174
  titolo = dizionario["Titolo"]
175
  testo_completo = dizionario["Testo"]
 
187
  if len(testo_completo) > 0:
188
  nuovo_dizionario = {"Titolo": titolo, "Testo": testo_completo}
189
  nuova_lista_dizionari.append(nuovo_dizionario)
190
+
191
+ for input_string in input_strings:
192
+ for dizionario in nuova_lista_dizionari:
193
+ data = {
194
+ 'input': input_string,
195
+ 'instruction': [dizionario],
196
+ 'temperature': input_data.temperature,
197
+ 'max_new_tokens': input_data.max_new_tokens,
198
+ 'top_p': input_data.top_p,
199
+ 'repetition_penalty': input_data.repetition_penalty,
200
+ 'systemRole': input_data.systemRole,
201
+ 'systemStyle': input_data.systemStyle
202
+ }
203
+ ListaInput.append(data)
204
+ return ListaInput
205
 
206
 
207
+ def DividiInstructionText(input_data):
208
+ ListaInput = []
209
+ input_str = input_data.instruction
210
+ StringaSplit = input_data.StringaSplit
211
+ numerocaratteriSPLIT = input_data.NumeroCaratteriSplitInstruction
212
  sottostringhe = []
 
213
  indice_inizio = 0
214
  if len(input_str) > numerocaratteriSPLIT:
215
  while indice_inizio < len(input_str):
 
222
  sottostringhe.append(input_str)
223
  testoSeparato = StringaSplit.join(sottostringhe)
224
  instruction_strings = testoSeparato.split(StringaSplit)
225
+ for input_string in input_strings:
226
+ for instruction_string in instruction_strings:
 
 
 
 
 
 
 
227
  data = {
228
  'input': input_string.strip(),
229
+ 'instruction': [{instruction_string.strip()}],
230
  'temperature': input_data.temperature,
231
  'max_new_tokens': input_data.max_new_tokens,
232
  'top_p': input_data.top_p,
233
  'repetition_penalty': input_data.repetition_penalty,
234
  'systemRole': input_data.systemRole,
235
+ 'systemStyle': input_data.systemStyle
 
236
  }
237
+ ListaInput.append(data)
238
+ return ListaInput
239
+
240
+
241
+ async def GeneraTestoAsync(url, input_data):
242
+ token = os.getenv('TOKEN')
243
+ async with aiohttp.ClientSession() as session:
244
+ tasks = []
245
+ ListaInput = CreaListaInput(input_data)
246
+ for data in ListaInput:
247
  tasks.extend([make_request(session, token, data, url) for _ in range(input_data.NumeroGenerazioni)])
248
  return await asyncio.gather(*tasks)
249