Reality123b commited on
Commit
d44e0f3
·
verified ·
1 Parent(s): 1ca062e

Update application/chat_inference.py

Browse files
Files changed (1) hide show
  1. application/chat_inference.py +61 -61
application/chat_inference.py CHANGED
@@ -1,61 +1,61 @@
1
- from application.utils.chat_completion_api import ChatCompletionAPI
2
- from config import Response,pipeline_dict,convs_dict
3
- import os
4
- class ChatInference:
5
- def __init__(self):
6
- self.chatCompletionAPI = ChatCompletionAPI()
7
-
8
- def validate(self,data,user):
9
- try:
10
- pipeline = pipeline_dict['api']['models']
11
- model = data['model']
12
- self.headers = pipeline[model]['headers']
13
- self.updateHeaders = {}
14
- for header in self.headers:
15
- if(header=="config"):
16
- for configHeader in self.headers[header]:
17
- if(configHeader=="Authorization"):
18
- auth = self.headers[header][configHeader].split(' ')
19
- self.updateHeaders[configHeader] = f"{auth[0]} {eval(auth[1])}"
20
- elif(configHeader=="comment"):
21
- pass
22
- else:
23
- self.updateHeaders[configHeader] = f"{eval(self.headers[header][configHeader])}"
24
- else:
25
- self.updateHeaders[header] = self.headers[header]
26
- prompt = data['prompt']
27
- max_tokens = data.get('max_token', 1024)
28
- temperature = max(0, min(data.get('temperature', 0.7), 2))
29
- top_p = max(0.1, min(data.get('top_p', 0.9), 1))
30
- system = data.get('system_prompt','')
31
- convId = data['convId']
32
-
33
- if(len(convs_dict[user][convId]['messages'])==1):
34
- #convs_dict[user][convId]['messages'].append({"role":"system", "content": system})
35
- convs_dict[user]['metadata'].insert(0,{"convId": convId, "title": prompt[:23]})
36
- convs_dict[user][convId]['title'] = prompt[:30]
37
- if(pipeline[model]['type'] == 'image-text-to-text'):
38
- convs_dict[user][convId]['messages'].append({"role": "user", "content": [{"type":"text","text":prompt}]})
39
- else:
40
- convs_dict[user][convId]['messages'].append({"role":"user","content":prompt})
41
- transformed = {
42
- "model": model,
43
- "prompt": prompt,
44
- "messages": convs_dict[user][convId]['messages'],
45
- "max_tokens": max_tokens,
46
- "temperature": temperature,
47
- "top_p": top_p,
48
- "stream": True
49
- }
50
- data.update(transformed)
51
- return data
52
- except KeyError:
53
- return 400
54
-
55
- def chat(self,data,handle_stream,user):
56
- data = self.validate(data=data,user=user)
57
- if(data==400):
58
- return "Required Parameters are Missing!", 400
59
- return self.chatCompletionAPI.make_request(json=data,url=data['base_url'],handle_stream=handle_stream,messages=data['messages'], headers=self.updateHeaders, webSearch=data['webSearch'])
60
-
61
-
 
1
+ from application.utils.chat_completion_api import ChatCompletionAPI
2
+ from config import Response,pipeline_dict,convs_dict
3
+ import os
4
+
5
+ class ChatInference:
6
+ def __init__(self):
7
+ self.chatCompletionAPI = ChatCompletionAPI()
8
+
9
+ def validate(self,data,user):
10
+ try:
11
+ pipeline = pipeline_dict['api']['models']
12
+ model = data['model']
13
+ self.headers = pipeline[model]['headers']
14
+ self.updateHeaders = {}
15
+ for header in self.headers:
16
+ if(header=="config"):
17
+ for configHeader in self.headers[header]:
18
+ if(configHeader=="Authorization"):
19
+ auth = self.headers[header][configHeader].split(' ')
20
+ self.updateHeaders[configHeader] = f"{auth[0]} {eval(auth[1])}"
21
+ elif(configHeader=="comment"):
22
+ pass
23
+ else:
24
+ self.updateHeaders[configHeader] = f"{eval(self.headers[header][configHeader])}"
25
+ else:
26
+ self.updateHeaders[header] = self.headers[header]
27
+ prompt = data['prompt']
28
+ max_tokens = data.get('max_token', 10020)
29
+ temperature = max(0, min(data.get('temperature', 0.7), 2))
30
+ top_p = max(0.1, min(data.get('top_p', 0.9), 1))
31
+ system = data.get('system_prompt','You are a helpful and harmless AI assistant. You are xylaria made by sk md saad amin. You should think step-by-step')
32
+ convId = data['convId']
33
+
34
+ if(len(convs_dict[user][convId]['messages'])==1):
35
+ if system:
36
+ convs_dict[user][convId]['messages'].insert(0,{"role":"system", "content": system})
37
+ convs_dict[user]['metadata'].insert(0,{"convId": convId, "title": prompt[:23]})
38
+ convs_dict[user][convId]['title'] = prompt[:30]
39
+ if(pipeline[model]['type'] == 'image-text-to-text'):
40
+ convs_dict[user][convId]['messages'].append({"role": "user", "content": [{"type":"text","text":prompt}]})
41
+ else:
42
+ convs_dict[user][convId]['messages'].append({"role":"user","content":prompt})
43
+ transformed = {
44
+ "model": model,
45
+ "prompt": prompt,
46
+ "messages": convs_dict[user][convId]['messages'],
47
+ "max_tokens": max_tokens,
48
+ "temperature": temperature,
49
+ "top_p": top_p,
50
+ "stream": True
51
+ }
52
+ data.update(transformed)
53
+ return data
54
+ except KeyError:
55
+ return 400
56
+
57
+ def chat(self,data,handle_stream,user):
58
+ data = self.validate(data=data,user=user)
59
+ if(data==400):
60
+ return "Required Parameters are Missing!", 400
61
+ return self.chatCompletionAPI.make_request(json=data,url=data['base_url'],handle_stream=handle_stream,messages=data['messages'], headers=self.updateHeaders, webSearch=data['webSearch'])