Skip to content

Commit 6c30ef8

Browse files
committed
added:create image vision support for ai module
1 parent 315b4c1 commit 6c30ef8

File tree

8 files changed

+828
-28
lines changed

8 files changed

+828
-28
lines changed

XEngine_Module/XEngine_AIApi/AIApi_Define.h

Lines changed: 277 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,282 @@ extern "C" bool AIApi_Chat_Destory(XNETHANDLE xhToken);
178178
/************************************************************************/
179179
/* AI图像处理模型导出函数 */
180180
/************************************************************************/
181+
/********************************************************************
182+
函数名称:AIApi_Image_Create
183+
函数功能:AI图像处理模型初始化
184+
参数.一:pxhToken
185+
In/Out:Out
186+
类型:句柄
187+
可空:N
188+
意思:输出初始化成功的句柄
189+
参数.二:lpszAPIUrl
190+
In/Out:In
191+
类型:常量字符指针
192+
可空:N
193+
意思:输入模型API地址
194+
参数.三:lpszAPIKey
195+
In/Out:In
196+
类型:常量字符指针
197+
可空:N
198+
意思:输入模型的KEY
199+
参数.四:fpCall_Chat
200+
In/Out:In/Out
201+
类型:回调函数
202+
可空:N
203+
意思:对话输出信息
204+
参数.五:lParam
205+
In/Out:In/Out
206+
类型:无类型指针
207+
可空:Y
208+
意思:回调函数自定义参数
209+
返回值
210+
类型:逻辑型
211+
意思:是否成功
212+
备注:
213+
*********************************************************************/
181214
extern "C" bool AIApi_Image_Create(XNETHANDLE* pxhToken, LPCXSTR lpszAPIUrl, LPCXSTR lpszAPIKey, CALLBACK_XENGINE_MODULE_AIAPI_CHAT fpCall_Chat, XPVOID lParam = NULL);
182-
extern "C" bool AIApi_Image_Excute(XNETHANDLE xhToken, LPCXSTR lpszModelName, LPCXSTR lpszUrlBase, LPCXSTR lpszMSGBuffer, int nMSGLen, bool bStream = false);
215+
/********************************************************************
216+
函数名称:AIApi_Image_ExcuteParse
217+
函数功能:处理图像理解
218+
参数.一:xhToken
219+
In/Out:In
220+
类型:句柄
221+
可空:N
222+
意思:输入要操作的句柄
223+
参数.二:lpszModelName
224+
In/Out:In
225+
类型:常量字符指针
226+
可空:N
227+
意思:输入模型名称
228+
参数.三:lpszUrlBase
229+
In/Out:In
230+
类型:常量字符指针
231+
可空:N
232+
意思:输入URL或者BASE64编码数据
233+
参数.四:lpszMSGBuffer
234+
In/Out:In
235+
类型:常量字符指针
236+
可空:N
237+
意思:输入怎么处理图像数据
238+
参数.五:nMSGLen
239+
In/Out:In
240+
类型:整数型
241+
可空:N
242+
意思:输入lpszMSGBuffer大小
243+
参数.六:bStream
244+
In/Out:In
245+
类型:逻辑型
246+
可空:Y
247+
意思:是否使用流式数据回复
248+
返回值
249+
类型:逻辑型
250+
意思:是否成功
251+
备注:
252+
*********************************************************************/
253+
extern "C" bool AIApi_Image_ExcuteParse(XNETHANDLE xhToken, LPCXSTR lpszModelName, LPCXSTR lpszUrlBase, LPCXSTR lpszMSGBuffer, int nMSGLen, bool bStream = false);
254+
/********************************************************************
255+
函数名称:AIApi_Image_ExcuteCrete
256+
函数功能:AI创建图像
257+
参数.一:xhToken
258+
In/Out:In
259+
类型:句柄
260+
可空:N
261+
意思:输入要操作的句柄
262+
参数.二:lpszModelName
263+
In/Out:In
264+
类型:常量字符指针
265+
可空:N
266+
意思:输入模型名称
267+
参数.三:lpszMSGSize
268+
In/Out:In
269+
类型:常量字符指针
270+
可空:N
271+
意思:输入创建的分辨率1024x1024.需要根据模型来设置
272+
参数.四:lpszMSGBuffer
273+
In/Out:In
274+
类型:常量字符指针
275+
可空:N
276+
意思:描述要创建的什么样的图像
277+
参数.五:nMSGLen
278+
In/Out:In
279+
类型:整数型
280+
可空:N
281+
意思:输入lpszMSGBuffer大小
282+
参数.六:pptszMSGBuffer
283+
In/Out:Out
284+
类型:二级指针
285+
可空:Y
286+
意思:输出创建后的图像数据,此内存需要用户释放,如果bCallback为真,那么此参数不起作用
287+
参数.七:pInt_MSGLen
288+
In/Out:Out
289+
类型:整数型指针
290+
可空:Y
291+
意思:输出图像数据大小,如果bCallback为真,那么此参数不起作用
292+
参数.八:bCallback
293+
In/Out:In
294+
类型:逻辑型
295+
可空:Y
296+
意思:输入图像输出方法,可以为回调或者直接输出
297+
返回值
298+
类型:逻辑型
299+
意思:是否成功
300+
备注:
301+
*********************************************************************/
302+
extern "C" bool AIApi_Image_ExcuteCrete(XNETHANDLE xhToken, LPCXSTR lpszModelName, LPCXSTR lpszMSGSize, LPCXSTR lpszMSGBuffer, int nMSGLen, XCHAR** pptszMSGBuffer, int* pInt_MSGLen, bool bCallback = false);
303+
/********************************************************************
304+
函数名称:AIApi_Image_GetStatus
305+
函数功能:获取执行状态
306+
参数.一:xhToken
307+
In/Out:In
308+
类型:句柄
309+
可空:N
310+
意思:输入要操作的句柄
311+
参数.二:pbComplete
312+
In/Out:Out
313+
类型:逻辑型指针
314+
可空:N
315+
意思:输出是否执行完毕
316+
参数.三:pInt_HTTPCode
317+
In/Out:Out
318+
类型:整数型指针
319+
可空:Y
320+
意思:输出HTTP状态码
321+
参数.四:bWaitExist
322+
In/Out:In
323+
类型:逻辑型
324+
可空:Y
325+
意思:是否等待执行完毕
326+
返回值
327+
类型:逻辑型
328+
意思:是否成功
329+
备注:pbComplete没有执行完毕需要等待执行完毕
330+
*********************************************************************/
183331
extern "C" bool AIApi_Image_GetStatus(XNETHANDLE xhToken, bool* pbComplete, int* pInt_HTTPCode = NULL, bool bWaitExist = true);
184-
extern "C" bool AIApi_Image_Destory(XNETHANDLE xhToken);
332+
/********************************************************************
333+
函数名称:AIApi_Image_Destory
334+
函数功能:销毁一个对话模型
335+
参数.一:xhToken
336+
In/Out:In
337+
类型:句柄
338+
可空:N
339+
意思:要操作的模型句柄
340+
返回值
341+
类型:逻辑型
342+
意思:是否成功
343+
备注:
344+
*********************************************************************/
345+
extern "C" bool AIApi_Image_Destory(XNETHANDLE xhToken);
346+
/************************************************************************/
347+
/* AI帮助 导出函数 */
348+
/************************************************************************/
349+
/********************************************************************
350+
函数名称:AIApi_Help_Base64EncodecFile
351+
函数功能:转换文件到BASE64请求格式
352+
参数.一:lpszFileName
353+
In/Out:In
354+
类型:常量字符指针
355+
可空:N
356+
意思:输入要读取的文件
357+
参数.二:pptszMSGBuffer
358+
In/Out:Out
359+
类型:二级指针
360+
可空:N
361+
意思:输出转换后的缓冲区,此内存需要用户手动释放
362+
参数.三:pInt_MSGLen
363+
In/Out:Out
364+
类型:整数型指针
365+
可空:N
366+
意思:输出缓冲区大小
367+
返回值
368+
类型:逻辑型
369+
意思:是否成功
370+
备注:
371+
*********************************************************************/
372+
extern "C" bool AIApi_Help_Base64EncodecFile(LPCXSTR lpszFileName, XCHAR** pptszMSGBuffer, int* pInt_MSGLen);
373+
/********************************************************************
374+
函数名称:AIApi_Help_Base64EncodecMemory
375+
函数功能:转换内存数据到BASE64请求格式
376+
参数.一:lpszFileExt
377+
In/Out:In
378+
类型:常量字符指针
379+
可空:N
380+
意思:文件的后缀名格式
381+
参数.二:lpszMSGBuffer
382+
In/Out:In
383+
类型:常量字符指针
384+
可空:N
385+
意思:输入内存缓冲区
386+
参数.三:nMSGLen
387+
In/Out:In
388+
类型:整数型
389+
可空:N
390+
意思:输入缓冲区大小
391+
参数.四:pptszMSGBuffer
392+
In/Out:Out
393+
类型:二级指针
394+
可空:N
395+
意思:输出转换后的缓冲区,此内存需要用户手动释放
396+
参数.五:pInt_MSGLen
397+
In/Out:Out
398+
类型:整数型指针
399+
可空:N
400+
意思:输出缓冲区大小
401+
返回值
402+
类型:逻辑型
403+
意思:是否成功
404+
备注:
405+
*********************************************************************/
406+
extern "C" bool AIApi_Help_Base64EncodecMemory(LPCXSTR lpszFileExt, LPCXSTR lpszMSGBuffer, int nMSGLen, XCHAR** pptszMSGBuffer, int* pInt_MSGLen);
407+
/********************************************************************
408+
函数名称:AIApi_Help_Base64DecodecFile
409+
函数功能:BASE64格式内存缓冲区数据转文件
410+
参数.一:lpszMSGBuffer
411+
In/Out:In
412+
类型:常量字符指针
413+
可空:N
414+
意思:输入内存缓冲区
415+
参数.二:nMSGLen
416+
In/Out:In
417+
类型:整数型
418+
可空:N
419+
意思:输入缓冲区大小
420+
参数.三:lpszFileName
421+
In/Out:In
422+
类型:常量字符指针
423+
可空:N
424+
意思:输入要保存的文件地址
425+
返回值
426+
类型:逻辑型
427+
意思:是否成功
428+
备注:
429+
*********************************************************************/
430+
extern "C" bool AIApi_Help_Base64DecodecFile(LPCXSTR lpszMSGBuffer, int nMSGLen, LPCXSTR lpszFileName);
431+
/********************************************************************
432+
函数名称:AIApi_Help_Base64DecodecMemory
433+
函数功能:BASE64格式内存缓冲区转为内存数据
434+
参数.一:lpszMSGBuffer
435+
In/Out:In
436+
类型:常量字符指针
437+
可空:N
438+
意思:输入内存缓冲区
439+
参数.二:nMSGLen
440+
In/Out:In
441+
类型:整数型
442+
可空:N
443+
意思:输入缓冲区大小
444+
参数.三:ptszMSGBuffer
445+
In/Out:Out
446+
类型:字符指针
447+
可空:N
448+
意思:输出转换后的缓冲区
449+
参数.四:pInt_MSGLen
450+
In/Out:Out
451+
类型:整数型指针
452+
可空:N
453+
意思:输出缓冲区大小
454+
返回值
455+
类型:逻辑型
456+
意思:是否成功
457+
备注:
458+
*********************************************************************/
459+
extern "C" bool AIApi_Help_Base64DecodecMemory(LPCXSTR lpszMSGBuffer, int nMSGLen, XCHAR* ptszMSGBuffer, int* pInt_MSGLen);

XEngine_Module/XEngine_AIApi/AIApi_Error.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,13 @@
2121
/************************************************************************/
2222
#define ERROR_XENGINE_MODULE_AIAPI_IMAGE_PARAMENT 0x01D1001 //参数错误,无法继续
2323
#define ERROR_XENGINE_MODULE_AIAPI_IMAGE_MALLOC 0x01D1002 //申请内存失败
24-
#define ERROR_XENGINE_MODULE_AIAPI_IMAGE_NOTFOUND 0x01D1003 //没有找到
24+
#define ERROR_XENGINE_MODULE_AIAPI_IMAGE_NOTFOUND 0x01D1003 //没有找到
25+
#define ERROR_XENGINE_MODULE_AIAPI_IMAGE_PARSE 0x01D1004 //JSON解析错误
26+
#define ERROR_XENGINE_MODULE_AIAPI_IMAGE_FORMAT 0x01D1005 //JSON格式错误
27+
/************************************************************************/
28+
/* AI帮助接口错误 */
29+
/************************************************************************/
30+
#define ERROR_XENGINE_MODULE_AIAPI_HELP_PARAMENT 0x01D2001 //参数错误,无法继续
31+
#define ERROR_XENGINE_MODULE_AIAPI_HELP_MALLOC 0x01D2002 //申请内存失败
32+
#define ERROR_XENGINE_MODULE_AIAPI_HELP_OPENFILE 0x01D2003 //打开文件失败
33+
#define ERROR_XENGINE_MODULE_AIAPI_HELP_READFILE 0x01D2004 //读取文件失败

0 commit comments

Comments
 (0)