123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 |
- ##################################
- # GPTrequest #
- ##################################
- #Version date : 2024-07-08
- #region : CH
- import uuid
- import requests
- import json
- import base64
- import os
- try:
- class LazyImport:
- def __init__(self, module_name):
- self.module_name = module_name
- self.module = None
- def __getattr__(self, name):
- if self.module is None:
- self.module = __import__(self.module_name)
- return getattr(self.module, name)
- uuid = LazyImport("uuid")
- requests = LazyImport("requests")
- json = LazyImport("json")
- base64 = LazyImport("base64")
- except ModuleNotFoundError as e:
- pass
- class GPTrequest():
- def __init__(self):
- self.uid = str(uuid.uuid1().hex)
- #获取hardware mac地址
- cmd="cat /sys/class/sunxi_info/sys_info"
- rec=os.popen(cmd).read()
- self.hwMac=rec[rec.find("sunxi_serial : ")+20:rec.find("sunxi_serial : ")+52]
- print(self.hwMac)
-
- # 文字生成图片
- def get_text_to_img(self,text):
- uid = str(uuid.uuid1().hex)
- param = {
- "size": "1024x1024",
- "quality": "standard",
- "n": 1,
- "prompt": text,
- "style":"natural",
- "uid": uid
- }
- headers={
- "Content-Type":"application/json",
- "hwMac":self.hwMac
- }
- imgUrl = ""
- res = requests.post("https://gpt4.cocorobo.cn/getImageV831", headers=headers, json=param)
- try:
- url = (json.loads(res.text))["FunctionResponse"]["image_url_list"][0]
- r = requests.get("https://gpt4.cocorobo.cn"+url)
- with open("/root/user/img/" + uid + ".png","wb") as f:
- f.write(r.content)
- imgUrl = "/root/user/img/" + uid + ".png"
- except:
- imgUrl = ""
- return imgUrl
-
- # 图片转base64
- def encode_image(self,image_path):
- img_data = ""
- try:
- with open(image_path, "rb") as f:
- img_data = f.read()
- except:
- pass
- return str(base64.b64encode(img_data), "utf-8")
- # 通过图片获取文字
- def get_image_to_text(self,imgUrl,textDesc):
- uid = str(uuid.uuid1().hex)
- strBase = self.encode_image(imgUrl)
- params = {
- "max_tokens": 4096,
- "messages":[
- {
- "role": "user",
- "content":[
- {"text": textDesc,"type": "text"},
- {"image_url": {"url": f"data:image/jpeg;base64,{strBase}"},"type": "image_url"}
- ]
- }
- ],
- "uid": uid,
- "stream": False
- }
- headers={
- "Content-Type":"application/json",
- "hwMac":self.hwMac
- }
- textContent = ""
- res = requests.post("https://gpt4.cocorobo.cn/imageAnalyse", headers=headers, data=json.dumps(params))
- try:
- if res.status_code == 200:
- textContent = json.loads(res.text)["FunctionResponse"]["choices"][0]["message"]["content"]
-
- except:
- textContent = ""
- return textContent
-
- # 文字生成音頻文件
- def get_text_to_voice(self,text):
- uid = str(uuid.uuid1().hex)
- url = "https://gpt4.cocorobo.cn/getV831Audio"
- payload = json.dumps({"input": text,"response_format":"mp3","voice": "shimmer","uid":uid})
-
- headers={
- "Content-Type":"application/json",
- "hwMac":self.hwMac
- }
- response=requests.request("POST", url, headers=headers, data=payload)
- voiceFilePath = ""
- try:
- if response.status_code == 200:
- # print(json.loads(response.text)["FunctionResponse"]["url"])
- a = "https://gpt4.cocorobo.cn" + json.loads(response.text)["FunctionResponse"]["url"]
- r = requests.get(a)
- with open("/root/preset/audio/" + uid+".wav","wb") as f:
- f.write(r.content)
- voiceFilePath = "/root/preset/audio/" + uid+".wav"
- except:
- voiceFilePath = ""
- return voiceFilePath
-
- # 音频转文字
- def get_voice_to_text(self,voicePath):
- voiceData = open(voicePath,'rb')
- data = {"file": voiceData}
- param = {}
- headers={
- "hwMac":self.hwMac
- }
- res = requests.post("https://gpt4.cocorobo.cn/transcribe_file_stream",headers=headers, files=data, data=param)
- try:
- voiceResult = (json.loads(res.text))["FunctionResponse"]
- except:
- voiceResult = ""
- return voiceResult
- # gpt 對話,並生成音頻文件
- def get_post_chatgpt(self,datas):
- url = "https://gpt4.cocorobo.cn/v831AskForTopicNew"
- payload = json.dumps({"topic": datas})
- headers={
- "Content-Type":"application/json",
- "hwMac":self.hwMac
- }
- response=requests.request("POST", url, headers=headers, data=payload)
- result = ""
- try:
- result = json.loads(response.text)["FunctionResponse"]["result"]
- except:
- result = ""
- # print("resule:"+str(result))
- return result
-
-
- def get_post_AI_Intelligence(self,id,text):
- url = "https://gpt4.cocorobo.cn/ai_agent_chat"
- params = {
- "id":id,
- "userId":self.hwMac,
- "message":text,
- "file_ids": []
- }
- headers={
- "Content-Type":"application/json",
- "hwMac":self.hwMac
- }
- textContent = ""
- res = requests.post(url, headers=headers, data=json.dumps(params))
- try:
- textContent = json.loads(res.text)["FunctionResponse"]["message"]
- except:
- textContent = ""
- return textContent
|