This commit is contained in:
wzx 2024-11-08 14:43:41 +08:00
parent 0bbf3daf74
commit f1f4d84f7c
9 changed files with 157 additions and 119 deletions

View File

@ -1,62 +0,0 @@
# usr/bin/python3
import requests
import json
# 需填写appkey
appkey = "app-XXX"
# 上传图片
def upload_img(imgpath="test.jpg"):
headers = {
'Authorization': f'Bearer {appkey}',
}
files = {
'file': (imgpath, open(imgpath, 'rb'), 'image/jpg'), # 使用实际文件路径和类型替换
}
response = requests.post(url = 'http://sl.vrgon.com:6062/v1/files/upload', headers=headers, files=files, data={'user': 'robot'})
img_id = json.loads(response.content)["id"]
return img_id
# 计算
def img2text(path="./img/test.jpg"):
img_id = upload_img(path)
payload = {
"inputs": {},
"query": "请问这道数学题的答案是多少,请直接给出数字答案",
"response_mode": "blocking",
"conversation_id": "",
"user": "robot",
"files": [
{
"type": "image",
"transfer_method": "local_file",
"upload_file_id": img_id
}
]
}
headers = {
'Authorization': f'Bearer {appkey}',
'Content-Type': 'application/json',
}
response = requests.post(url = "http://sl.vrgon.com:6062/v1/chat-messages", headers=headers, data=json.dumps(payload))
ans = ""
if response.status_code == 200:
for line in response.iter_lines():
# print(line.decode('unicode_escape'))
temp = json.loads(line)
ans += temp["answer"]
return ans
if __name__=="__main__":
print(img2text(path="./img/2.jpg"))

View File

@ -1,57 +0,0 @@
# usr/bin/python2.7
import requests
import json
# 需填写appkey
appkey = "app-XXX"
# 上传图片
def upload_img(imgpath="test.jpg"):
headers = {
'Authorization': 'Bearer {0}'.format(appkey),
}
with open(imgpath, 'rb') as f:
files = {'file': (imgpath, f, 'image/jpg')}
response = requests.post(url = 'http://sl.vrgon.com:6062/v1/files/upload', headers=headers, files=files, data={'user': 'robot'})
img_id = json.loads(response.content)["id"]
return img_id
# 计算
def img2text(path="./img/test.jpg"):
img_id = upload_img(path)
payload = {
"inputs": {},
"query": "请问这道数学题的答案是多少,请直接给出数字答案",
"response_mode": "blocking",
"conversation_id": "",
"user": "robot",
"files": [
{
"type": "image",
"transfer_method": "local_file",
"upload_file_id": img_id
}
]
}
headers = {
'Authorization': 'Bearer {0}'.format(appkey),
'Content-Type': 'application/json',
}
response = requests.post(url = "http://sl.vrgon.com:6062/v1/chat-messages", headers=headers, data=json.dumps(payload))
ans = ""
if response.status_code == 200:
for line in response.iter_lines():
temp = json.loads(line)
ans += temp["answer"]
return ans
if __name__=="__main__":
print img2text(path="./img/2.jpg")

11
main.py Normal file
View File

@ -0,0 +1,11 @@
#usr/bin/python2.7
from src.img2text2 import Chatbot
if __name__ == "__main__":
base_url = ""
# Appkey is required
appkey = "app-"
cb = Chatbot(appkey, base_url)
print cb.img2text(path="./img/2.jpg")

View File

@ -4,6 +4,18 @@
## img2text2.py 为python2 版本 ## img2text2.py 为python2 版本
1.下载包
git clone http://sl.vrgon.com:3000/wangzixiang/img2textforrobot.git
2.安装依赖包
pip install requests
3.测试运行
python main.py
4.使用
将src 放入同级目录下然后根据main.py 方式调用即可
# sample # sample
![](docs/0bec4563f67e5c03c7bf8c75a1618dd.png) ![](docs/0bec4563f67e5c03c7bf8c75a1618dd.png)

0
src/__init__.py Normal file
View File

Binary file not shown.

Binary file not shown.

73
src/img2text.py Normal file
View File

@ -0,0 +1,73 @@
# usr/bin/python3
import requests
import json
class Chatbot:
def __init__(self, appkey, base_url):
self.appkey = appkey
self.base_url = base_url
# 上传图片
def upload_img(self, imgpath="test.jpg"):
headers = {
'Authorization': f'Bearer {self.appkey}',
}
files = {
'file': (imgpath, open(imgpath, 'rb'), 'image/jpg'), # 使用实际文件路径和类型替换
}
try:
response = requests.post(url = f'{self.base_url}/files/upload', headers=headers, files=files, data={'user': 'robot'})
except Exception as e:
print("error", e)
img_id = json.loads(response.content)["id"]
return img_id
# 计算
def img2text(self, path="./img/test.jpg"):
img_id = self.upload_img(path)
payload = {
"inputs": {},
"query": "请问这道数学题的答案是多少,请直接给出数字答案",
"response_mode": "blocking",
"conversation_id": "",
"user": "robot",
"files": [
{
"type": "image",
"transfer_method": "local_file",
"upload_file_id": img_id
}
]
}
headers = {
'Authorization': f'Bearer {self.appkey}',
'Content-Type': 'application/json',
}
response = requests.post(url = f"{self.base_url}/chat-messages", headers=headers, data=json.dumps(payload))
ans = ""
if response.status_code == 200:
for line in response.iter_lines():
# print(line.decode('unicode_escape'))
temp = json.loads(line)
ans += temp["answer"]
return ans
if __name__=="__main__":
base_url = "http://sl.vrgon.com:6062/v1"
# 需填写appkey
appkey = "app-SKvWcmjJJk5PoTumsegFNd1N"
cb = Chatbot(appkey, base_url)
print(cb.img2text(path="./img/2.jpg"))

61
src/img2text2.py Normal file
View File

@ -0,0 +1,61 @@
#usr/bin/python2.7
import requests
import json
class Chatbot:
def init(self, appkey, base_url):
self.appkey = appkey
self.base_url = base_url
# Upload pictures
def upload_img(self, imgpath="test.jpg"):
headers = {
'Authorization': 'Bearer {}'.format(self.appkey),
}
files = {
'file': (imgpath, open(imgpath, 'rb'), 'image/jpg'), # Replace with the actual file path and type
}
try:
response = requests.post(url=self.base_url + '/files/upload', headers=headers, files=files, data={'user': 'robot'})
except Exception as e:
print("error", e)
img_id = json.loads(response.content)["id"]
return img_id
# 计算
def img2text(self, path="./img/test.jpg"):
img_id = self.upload_img(path)
payload = {
"inputs": {},
"query": "What is the answer to this math problem? Please give the numerical answer directly.",
"response_mode": "blocking",
"conversation_id": "",
"user": "robot",
"files": [
{
"type": "image",
"transfer_method": "local_file",
"upload_file_id": img_id
}
]
}
headers = {
'Authorization': 'Bearer {}'.format(self.appkey),
'Content-Type': 'application/json',
}
response = requests.post(url=self.base_url + '/chat-messages', headers=headers, data=json.dumps(payload))
ans = ""
if response.status_code == 200:
for line in response.iter_lines():
if line: # Make sure the row is not empty
temp = json.loads(line)
ans += temp["answer"]
return ans