mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-23 04:46:07 +00:00
feat: 模型视觉多模态支持
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import uuid
|
||||
|
||||
import oss2
|
||||
|
||||
from .. import service as osssv
|
||||
|
||||
|
||||
@osssv.service_class('aliyun')
|
||||
class AliyunOSSService(osssv.OSSService):
|
||||
"""阿里云OSS服务"""
|
||||
|
||||
auth: oss2.Auth
|
||||
|
||||
bucket: oss2.Bucket
|
||||
|
||||
async def initialize(self):
|
||||
self.auth = oss2.Auth(
|
||||
self.cfg['access-key-id'],
|
||||
self.cfg['access-key-secret']
|
||||
)
|
||||
|
||||
self.bucket = oss2.Bucket(
|
||||
self.auth,
|
||||
self.cfg['endpoint'],
|
||||
self.cfg['bucket']
|
||||
)
|
||||
|
||||
async def upload(
|
||||
self,
|
||||
local_file: str=None,
|
||||
file_bytes: bytes=None,
|
||||
ext: str=None,
|
||||
) -> str:
|
||||
if local_file is not None:
|
||||
with open(local_file, 'rb') as f:
|
||||
file_bytes = f.read()
|
||||
|
||||
if file_bytes is None:
|
||||
raise Exception("缺少文件内容")
|
||||
|
||||
name = str(uuid.uuid1())
|
||||
|
||||
key = f"{self.cfg['prefix']}/{name}{ext}"
|
||||
self.bucket.put_object(key, file_bytes)
|
||||
|
||||
return f"{self.cfg['public-read-base-url']}/{key}"
|
||||
Reference in New Issue
Block a user