mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 13:39:04 +08:00
fix: replace os.path.join with yarl (#2690)
This commit is contained in:
parent
552f319b9d
commit
95733796f0
@ -1,10 +1,10 @@
|
||||
from os import path
|
||||
from threading import Lock
|
||||
from time import time
|
||||
|
||||
from requests.adapters import HTTPAdapter
|
||||
from requests.exceptions import ConnectionError, MissingSchema, Timeout
|
||||
from requests.sessions import Session
|
||||
from yarl import URL
|
||||
|
||||
|
||||
class XinferenceModelExtraParameter:
|
||||
@ -55,7 +55,10 @@ class XinferenceHelper:
|
||||
get xinference model extra parameter like model_format and model_handle_type
|
||||
"""
|
||||
|
||||
url = path.join(server_url, 'v1/models', model_uid)
|
||||
if not model_uid or not model_uid.strip() or not server_url or not server_url.strip():
|
||||
raise RuntimeError('model_uid is empty')
|
||||
|
||||
url = str(URL(server_url) / 'v1' / 'models' / model_uid)
|
||||
|
||||
# this method is surrounded by a lock, and default requests may hang forever, so we just set a Adapter with max_retries=3
|
||||
session = Session()
|
||||
@ -66,7 +69,6 @@ class XinferenceHelper:
|
||||
response = session.get(url, timeout=10)
|
||||
except (MissingSchema, ConnectionError, Timeout) as e:
|
||||
raise RuntimeError(f'get xinference model extra parameter failed, url: {url}, error: {e}')
|
||||
|
||||
if response.status_code != 200:
|
||||
raise RuntimeError(f'get xinference model extra parameter failed, status code: {response.status_code}, response: {response.text}')
|
||||
|
||||
|
@ -69,3 +69,4 @@ gmpy2~=2.1.5
|
||||
numexpr~=2.9.0
|
||||
duckduckgo-search==4.4.3
|
||||
arxiv==2.1.0
|
||||
yarl~=1.9.4
|
@ -32,15 +32,17 @@ class MockXinferenceClass(object):
|
||||
response = Response()
|
||||
if 'v1/models/' in url:
|
||||
# get model uid
|
||||
model_uid = url.split('/')[-1]
|
||||
model_uid = url.split('/')[-1] or ''
|
||||
if not re.match(r'[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', model_uid) and \
|
||||
model_uid not in ['generate', 'chat', 'embedding', 'rerank']:
|
||||
response.status_code = 404
|
||||
response._content = b'{}'
|
||||
return response
|
||||
|
||||
# check if url is valid
|
||||
if not re.match(r'^(https?):\/\/[^\s\/$.?#].[^\s]*$', url):
|
||||
response.status_code = 404
|
||||
response._content = b'{}'
|
||||
return response
|
||||
|
||||
if model_uid in ['generate', 'chat']:
|
||||
|
Loading…
x
Reference in New Issue
Block a user