Skip to content

Commit b57802e

Browse files
committed
refactor: remove unused file upload methods from image.py
1 parent 73ab350 commit b57802e

File tree

1 file changed

+0
-158
lines changed
  • apps/models_provider/impl/aliyun_bai_lian_model_provider/model

1 file changed

+0
-158
lines changed

apps/models_provider/impl/aliyun_bai_lian_model_provider/model/image.py

Lines changed: 0 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -33,161 +33,3 @@ def new_instance(model_type, model_name, model_credential: Dict[str, object], **
3333

3434
def check_auth(self, api_key):
3535
return True
36-
37-
def get_upload_policy(self, api_key, model_name):
38-
"""获取文件上传凭证"""
39-
url = "https://dashscope.aliyuncs.com/api/v1/uploads"
40-
if 'dashscope-us' in self.openai_api_base:
41-
url = "https://dashscope-us.aliyuncs.com/api/v1/uploads"
42-
elif 'dashscope-intl' in self.openai_api_base:
43-
url = "https://dashscope-intl.aliyuncs.com/api/v1/uploads"
44-
headers = {
45-
"Authorization": f"Bearer {api_key}",
46-
"Content-Type": "application/json"
47-
}
48-
params = {
49-
"action": "getPolicy",
50-
"model": model_name
51-
}
52-
53-
response = requests.get(url, headers=headers, params=params)
54-
if response.status_code != 200:
55-
raise Exception(f"Failed to get upload policy: {response.text}")
56-
57-
return response.json()['data']
58-
59-
def upload_file_to_oss(self, policy_data, file_stream, file_name):
60-
"""将文件流上传到临时存储OSS"""
61-
# 构建OSS上传的目标路径
62-
key = f"{policy_data['upload_dir']}/{file_name}"
63-
64-
# 构建上传数据
65-
files = {
66-
'OSSAccessKeyId': (None, policy_data['oss_access_key_id']),
67-
'Signature': (None, policy_data['signature']),
68-
'policy': (None, policy_data['policy']),
69-
'x-oss-object-acl': (None, policy_data['x_oss_object_acl']),
70-
'x-oss-forbid-overwrite': (None, policy_data['x_oss_forbid_overwrite']),
71-
'key': (None, key),
72-
'success_action_status': (None, '200'),
73-
'file': (file_name, file_stream)
74-
}
75-
76-
# 执行上传请求
77-
response = requests.post(policy_data['upload_host'], files=files)
78-
if response.status_code != 200:
79-
raise Exception(f"Failed to upload file: {response.text}")
80-
81-
return f"oss://{key}"
82-
83-
def upload_file_and_get_url(self, file_stream, file_name):
84-
max_retries = 3
85-
86-
retry_delay = 1 # 初始重试延迟(秒)
87-
88-
for attempt in range(max_retries):
89-
try:
90-
# 1. 获取上传凭证,上传凭证接口有限流,超出限流将导致请求失败
91-
policy_data = self.get_upload_policy(self.openai_api_key.get_secret_value(), self.model_name)
92-
# 2. 上传文件到OSS
93-
oss_url = self.upload_file_to_oss(policy_data, file_stream, file_name)
94-
return oss_url
95-
except Exception as e:
96-
if attempt < max_retries - 1:
97-
# 指数退避策略
98-
time.sleep(retry_delay * (2 ** attempt))
99-
continue
100-
else:
101-
raise Exception(f"文件上传失败,已重试{max_retries}次: {str(e)}")
102-
103-
# def stream(
104-
# self,
105-
# input: LanguageModelInput,
106-
# config: Optional[RunnableConfig] = None,
107-
# *,
108-
# stop: Optional[list[str]] = None,
109-
# **kwargs: Any,
110-
# ) -> Iterator[BaseMessageChunk]:
111-
# url = f"{self.openai_api_base}/chat/completions"
112-
#
113-
# headers = {
114-
# "Authorization": f"Bearer {self.openai_api_key.get_secret_value()}",
115-
# "Content-Type": "application/json",
116-
# "X-DashScope-OssResourceResolve": "enable"
117-
# }
118-
# # 遍历input 获取所有的content 构造新的消息体
119-
# messages = []
120-
# for message in input:
121-
# if message.type == "human":
122-
# messages.append({
123-
# "role": "user",
124-
# "content": message.content
125-
# })
126-
# elif message.type == "ai":
127-
# messages.append({
128-
# "role": "assistant",
129-
# "content": message.content
130-
# })
131-
# elif message.type == "system":
132-
# messages.append({
133-
# "role": "system",
134-
# "content": message.content
135-
# })
136-
# extra_body = {"enable_thinking": True},
137-
# data = {
138-
# "model": self.model_name,
139-
# "messages": messages,
140-
# "extra_body": extra_body,
141-
# "stream": True,
142-
# }
143-
#
144-
# # 增加重试机制
145-
# max_retries = 3
146-
# retry_delay = 1
147-
#
148-
# for attempt in range(max_retries):
149-
# try:
150-
# response = requests.post(url, headers=headers, json=data, stream=True, timeout=30)
151-
# if response.status_code != 200:
152-
# raise Exception(f"Failed to get response: {response.text}")
153-
#
154-
# for line in response.iter_lines():
155-
# if line:
156-
# try:
157-
# decoded_line = line.decode('utf-8')
158-
# # 检查是否是有效的SSE数据行
159-
# if decoded_line.startswith('data: '):
160-
# # 提取JSON部分
161-
# json_str = decoded_line[6:] # 移除 'data: ' 前缀
162-
# # 检查是否是结束标记
163-
# if json_str.strip() == '[DONE]':
164-
# continue
165-
#
166-
# # 尝试解析JSON
167-
# chunk_data = json.loads(json_str)
168-
#
169-
# if 'choices' in chunk_data and chunk_data['choices']:
170-
# delta = chunk_data['choices'][0].get('delta', {})
171-
# content = delta.get('content', '')
172-
# if content:
173-
# yield AIMessage(content=content)
174-
# except json.JSONDecodeError:
175-
# # 忽略无法解析的行
176-
# continue
177-
# except Exception as e:
178-
# # 处理其他可能的异常
179-
# continue
180-
# break # 成功执行则退出重试循环
181-
#
182-
# except (requests.exceptions.ProxyError, requests.exceptions.ConnectionError) as e:
183-
# if attempt < max_retries - 1:
184-
# time.sleep(retry_delay * (2 ** attempt)) # 指数退避
185-
# continue
186-
# else:
187-
# raise Exception(f"网络连接失败,已重试{max_retries}次: {str(e)}")
188-
# except Exception as e:
189-
# if attempt < max_retries - 1:
190-
# time.sleep(retry_delay * (2 ** attempt))
191-
# continue
192-
# else:
193-
# raise Exception(f"请求失败,已重试{max_retries}次: {str(e)}")

0 commit comments

Comments
 (0)