4848async def get_uni_reply (reply : Reply , event : Event , bot : Bot ) -> UniMessage :
4949 if reply .msg is None :
5050 raise ValueError ("回复为空" )
51-
51+
5252 if isinstance (reply .msg , str ):
53- return UniMessage (Text (reply .msg ))
53+ return UniMessage ([ Text (reply .msg )] )
5454 elif isinstance (reply .msg , Message ):
5555 return await UniMessage .generate (message = reply .msg , event = event , bot = bot )
5656
@@ -70,6 +70,8 @@ async def to_image_data(image: Image) -> Union[BytesIO, bytes]:
7070 if image .url is not None :
7171 async with aiohttp .ClientSession () as session :
7272 async with session .get (image .url ) as resp :
73+ if resp .status != 200 :
74+ raise ValueError (f"无法获取图片数据: { resp .status } " )
7375 return await resp .read ()
7476
7577 raise ValueError ("无法获取图片数据" )
@@ -80,15 +82,24 @@ async def to_image_data(image: Image) -> Union[BytesIO, bytes]:
8082
8183
8284@chat .handle ()
83- async def _ (event : Event , bot : Bot , message : Message = CommandArg (), raw_message : Message = EventMessage ()):
85+ async def _ (
86+ event : Event ,
87+ bot : Bot ,
88+ message : Message = CommandArg (),
89+ raw_message : Message = EventMessage (),
90+ ):
8491 uni_message = await UniMessage .generate (message = message , event = event , bot = bot )
85- uni_message_raw = await UniMessage .generate (message = raw_message , event = event , bot = bot )
92+ uni_message_raw = await UniMessage .generate (
93+ message = raw_message , event = event , bot = bot
94+ )
8695
8796 msg = []
8897 reply = uni_message_raw [Reply , 0 ] if Reply in uni_message_raw else None
8998
9099 if reply is not None and reply .msg is not None :
91- uni_message = await get_uni_reply (reply , event , bot ) + uni_message
100+ uni_message = (await get_uni_reply (reply , event , bot )).include (
101+ Image , Text
102+ ) + uni_message
92103
93104 for seg in uni_message :
94105 if isinstance (seg , Text ) and seg .text .strip () != "" :
@@ -125,7 +136,9 @@ async def start_conversation(
125136 if args .extract_plain_text () != "" :
126137 matcher .set_arg (key = "msg" , message = args )
127138
128- state ["gemini_chat_session" ] = GeminiChatSession (GOOGLE_API_KEY , plugin_config .proxy )
139+ state ["gemini_chat_session" ] = GeminiChatSession (
140+ GOOGLE_API_KEY , plugin_config .proxy
141+ )
129142
130143
131144@conversation .got ("msg" , prompt = "对话开始" )
0 commit comments