File size: 2,434 Bytes
d727a17 |
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 |
import json
import os
from datetime import datetime
import requests
HOST = 'localhost:5000'
URI = f'http://{HOST}/api/v1/generate'
def log_stats(file_path, new_data):
# Check if the file exists, and read its content
if os.path.exists(file_path):
with open(file_path, 'r') as file:
try:
content = json.load(file)
except json.JSONDecodeError:
content = []
else:
content = []
# Get the current date and time
now = datetime.now()
# Format the date and time as a string
date_time_string = now.strftime("%Y-%m-%d %H:%M:%S")
new_data.append(date_time_string)
# Append the new data to the content
content.append(new_data)
# Write the updated content back to the file
with open(file_path, 'w') as file:
json.dump(content, file)
def model_api(request):
response = requests.post(f'http://{HOST}/api/v1/model', json=request)
return response.json()
# model info
def model_info():
response = model_api({'action': 'info'})
return response['result']['model_name']
# simple loader
def model_load(model_name):
return model_api({'action': 'load', 'model_name': model_name})
def get_completion(prompt, max_tokens = 250, temperature = 0.01):
request = {
'prompt': prompt,
'max_new_tokens': max_tokens,
'preset': 'None',
'do_sample': True,
'temperature': temperature,
'top_p': 0.1,
'typical_p': 1,
'epsilon_cutoff': 0, # In units of 1e-4
'eta_cutoff': 0, # In units of 1e-4
'tfs': 1,
'top_a': 0,
'repetition_penalty': 1.18,
'top_k': 40,
'min_length': 0,
'no_repeat_ngram_size': 0,
'num_beams': 1,
'penalty_alpha': 0,
'length_penalty': 1,
'early_stopping': False,
'mirostat_mode': 0,
'mirostat_tau': 5,
'mirostat_eta': 0.1,
'seed': -1,
'add_bos_token': True,
'truncation_length': 2048,
'ban_eos_token': False,
'skip_special_tokens': True,
'stopping_strings': []
}
print(URI)
response = requests.post(URI, json=request)
if response.status_code == 200:
result = response.json()['results'][0]['text']
print(result)
return result
else:
return ""
if __name__ == "__main__":
print(get_completion("hello")) |