# web.rest.gradioClient 库模块帮助文档

[使用范例：Z-Image 文生图 HF 版](https://www.aardio.com/zh-cn/docs/examples/AI/image/hf-z-image.html)

## web.rest 成员列表 <a id="web.rest" href="#web.rest">&#x23;</a>

### web.rest.gradioClient <a id="web.rest.gradioClient" href="#web.rest.gradioClient">&#x23;</a>
Gradio 客户端。  
继承自 web.rest.jsonClient 。

### web.rest.gradioClient() <a id="web.rest.gradioClient" href="#web.rest.gradioClient">&#x23;</a>
[返回对象:webRestGradioObject](#webRestGradioObject)

### web.rest.gradioClient(config,defaultConfig) <a id="web.rest.gradioClient" href="#web.rest.gradioClient">&#x23;</a>

```aardio
web.rest.aiChat(  
	proxy = proxy,  
	src = "gradio/hello_world",  
	token = token  
)/*创建 AI 聊天客户端。参数 config 可指定以下字段：  
- src 字段可指定 API 网址，或者 `username/space-name` 格式的 Hugging Face 空间名称。  
 @src 字段也可以指定 Hugging Face Space 网址（域名为 huggingface.co 或 *.hf.space ）。  
- 可选用 token 字段指定 token 令牌。  
- 可选用 auth 字段指定 `[username,password]` 的数组。  
- 可选用 proxy 字段指定代理服务器，代理格式: https://www.aardio.com/zh-cn/docs/library-guide/std/inet/proxy.html   
- 可选用 userAgent 字段指定用户代理。  
- 可选用 extraParameters, extraUrlParameters 字段指定附加参数表（table）  

可选用参数 @defaultConfig 传入指定默认字段值的表对象*/
```

### web.rest.gradioClient(src,defaultConfig) <a id="web.rest.gradioClient" href="#web.rest.gradioClient">&#x23;</a>
- 参数 @src 可指定 API 网址，  
或者 `username/space-name` 格式的 Hugging Face 空间名称。  
参数 @src 也可以指定 Hugging Face Space 网址（域名为 huggingface.co 或 *.hf.space ）。  
- 可选用参数 @defaultConfig 指定默认字段值，可指定的字段请参考上面 @config 参数说明。

## webRestGradioObject 成员列表 <a id="webRestGradioObject" href="#webRestGradioObject">&#x23;</a>

### webRestGradioObject.baseApi <a id="webRestGradioObject.baseApi" href="#webRestGradioObject.baseApi">&#x23;</a>
远程 API 对象。  

[返回对象:webRestApiObject](https://www.aardio.com/zh-cn/docs/library-reference/web/rest/client.html#webRestApiObject)

### webRestGradioObject.cancel(fnName,eventId) <a id="webRestGradioObject.cancel" href="#webRestGradioObject.cancel">&#x23;</a>
取消任务

### webRestGradioObject.close() <a id="webRestGradioObject.close" href="#webRestGradioObject.close">&#x23;</a>
关闭对象释放资源

### webRestGradioObject.config <a id="webRestGradioObject.config" href="#webRestGradioObject.config">&#x23;</a>
创建 web.rest.gradioClient 对象时的初始化参数表。

### webRestGradioObject.defaultHeaders <a id="webRestGradioObject.defaultHeaders" href="#webRestGradioObject.defaultHeaders">&#x23;</a>
替换所有请求默认添加的HTTP头  
请求结束时不会清空此属性  
该值可以是一个字符串,也可以是键值对组成的table对象

### webRestGradioObject.download(filePath,savePath,stepProc,saveDir) <a id="webRestGradioObject.download" href="#webRestGradioObject.download">&#x23;</a>
下载文件。  
可选用 @stepProc 参数指定下载进度回调函数,  
进度回调函数参数依次为 recvData,recvSize,contentLength，  
其中 recvData 为本次下载的数据，  
recvSize 为本次下载的字节数，  
contentLength 为需要下载的总字节数

### webRestGradioObject.extraParameters <a id="webRestGradioObject.extraParameters" href="#webRestGradioObject.extraParameters">&#x23;</a>
指定附加到所有请求参数中的默认参数  
该值应当是一个表,请求参数指定表对象时或为null才会附加extraParameters

### webRestGradioObject.extraUrlParameters <a id="webRestGradioObject.extraUrlParameters" href="#webRestGradioObject.extraUrlParameters">&#x23;</a>
指定附加到所有请求 URL 的默认参数。  
该值可以是一个表或字符串。  
表参数使用 inet.url.stringifyParameters 转换为字符串。  
表中的值如果是函数则每次请求都调用该函数取值

### webRestGradioObject.get(网址,参数表) <a id="webRestGradioObject.get" href="#webRestGradioObject.get">&#x23;</a>
使用该GET方法提交请求,获取资源  
请求参数将会自动转换为URL附加参数,  
请求参数可以指定表或字符串,如果是表请求前会转换为字符串  
成功返回数据,失败返回空值,错误信息,错误代码

### webRestGradioObject.getConfig() <a id="webRestGradioObject.getConfig" href="#webRestGradioObject.getConfig">&#x23;</a>
向 API 端点 "/config" 发送 get 请求。  
成功返回配置表对象，失败返回 null, 错误信息。

### webRestGradioObject.getInfo() <a id="webRestGradioObject.getInfo" href="#webRestGradioObject.getInfo">&#x23;</a>
向 API 端点 "/info" 发送 get 请求。   
成功返回包含自定义端点的表对象，返回对象包含字段如下：  
named_endpoints 字段包含了所有命名端点，键为字符串  
unnamed_endpoints 字段包含了所有匿名端点，键为数值。  
这些自定义端点可用作 xcall 对象的调用参数或索引。  

失败返回 null, 错误信息

### webRestGradioObject.getQueueStatus() <a id="webRestGradioObject.getQueueStatus" href="#webRestGradioObject.getQueueStatus">&#x23;</a>
向 API 端点 "/queue/status" 发送 get 请求。  
成功返回队列状态（表对象），失败返回 null, 错误信息。

### webRestGradioObject.getResult(fnName,eventId,sseCallback) <a id="webRestGradioObject.getResult" href="#webRestGradioObject.getResult">&#x23;</a>
获取 submit 方法提交任务的执行结果。  
可选用参数 @sseCallback 指定 SSE 回调函数。  

如果调用成功且返回器返回了 event 类型为 "complete" 或 "error" 类型的数据，  
则第一个返回值为服务器执行成功返回的数据（表对象 或 null 值），而第 2 个返回值为服务器返回的错误对象（null 或 字符串）。  
否则成功返回 true，失败返回 null,错误信息。

### webRestGradioObject.heartbeat() <a id="webRestGradioObject.heartbeat" href="#webRestGradioObject.heartbeat">&#x23;</a>
发送心跳以维持会话。

### webRestGradioObject.lastRequestUrl <a id="webRestGradioObject.lastRequestUrl" href="#webRestGradioObject.lastRequestUrl">&#x23;</a>
获取最后一次请求的 URL。  
允许的 beforeRequestHeaders 事件中修改此属性以改变请求地址。

### webRestGradioObject.lastResponse() <a id="webRestGradioObject.lastResponse" href="#webRestGradioObject.lastResponse">&#x23;</a>
获取最后一次服务器返回的数据，流式调用时此函数返回值无意义。  
如果控制台已打开或在开发环境中导入 console 库则在控制台输出数据  
下载文件时该值为空

### webRestGradioObject.lastResponseError() <a id="webRestGradioObject.lastResponseError" href="#webRestGradioObject.lastResponseError">&#x23;</a>
返回服务器最后一次返回的错误响应，并转换为错误对象。  
与调用 API 时转换响应数据一样，支持相同的服务器响应格式 。  
如果错误来自本地（lastStatusCode 属性为 null）则此函数返回 null 。  
如果最后一次发生请求成功，则此函数返回 null 。  

如果在参数 @1 中指定返回字段，且错误对象包含该字段则使用直接下标获取并返回字段值。  
获取字段失败返回 null 而非抛出异常

### webRestGradioObject.lastResponseObject() <a id="webRestGradioObject.lastResponseObject" href="#webRestGradioObject.lastResponseObject">&#x23;</a>
获取最后一次服务器返回的对象（已将响应文本解析为对象），  
如果是 SSE 流式调用，返回最后一次接受的包含 token 计数的对象  
请求失败，或者下载文件时此属性值为空。

### webRestGradioObject.lastResponseString() <a id="webRestGradioObject.lastResponseString" href="#webRestGradioObject.lastResponseString">&#x23;</a>
获取最后一次服务器返回的原始数据，流式调用时此函数返回值无意义。  
请求失败，或者下载文件时此属性值为空

### webRestGradioObject.lastStatusCode <a id="webRestGradioObject.lastStatusCode" href="#webRestGradioObject.lastStatusCode">&#x23;</a>
获取最近一次请求返回的HTTP状态码  
100 ~ 101 为信息提示  
200 ~ 206 表示请求成功  
300 ~ 305 表示重定向  
400 ~ 415 表求客户端请求出错  
500 ~ 505 表示服务端错误

### webRestGradioObject.lastStatusMessage() <a id="webRestGradioObject.lastStatusMessage" href="#webRestGradioObject.lastStatusMessage">&#x23;</a>
获取最近返回的HTTP状态码文本描述  
第二个返回值为状态码

### webRestGradioObject.ok() <a id="webRestGradioObject.ok" href="#webRestGradioObject.ok">&#x23;</a>
最后一次请求是否成功  
服务器应答并且状态码为2XX该函数返回真

### webRestGradioObject.post(网址,参数表) <a id="webRestGradioObject.post" href="#webRestGradioObject.post">&#x23;</a>
使用该POST方法提交请求,新增或修改资源  
请求参数可以指定表或字符串,如果是表请求前会转换为字符串  
成功返回数据,失败返回空值,错误信息,错误代码

### webRestGradioObject.predict(apiName,params,sseCallback) <a id="webRestGradioObject.predict" href="#webRestGradioObject.predict">&#x23;</a>
predict 属性 是 xcall 属性的别名。

### webRestGradioObject.referer <a id="webRestGradioObject.referer" href="#webRestGradioObject.referer">&#x23;</a>
引用页地址。  
如果此属性指定了一个值，则每次请求都会使用该引用页。  
如果不指定，每次请求都会自动设置上次请求的网址为引用页。  
这个属性不像 inet.http 对象的 referer 属性那样每次请求结束都会清空。

### webRestGradioObject.setHeaders <a id="webRestGradioObject.setHeaders" href="#webRestGradioObject.setHeaders">&#x23;</a>
设置所有请求默认添加的HTTP头

### webRestGradioObject.setHeaders(headers) <a id="webRestGradioObject.setHeaders" href="#webRestGradioObject.setHeaders">&#x23;</a>
参数 @headers 必须指定一个表中,  
用该表中的键值对更新 defaultHeaders 属性中的键值  
如果 defaultHeaders 的原属性值不是一个表,则先清空该属性

### webRestGradioObject.setTimeouts(连接超时,请求超时,接收超时) <a id="webRestGradioObject.setTimeouts" href="#webRestGradioObject.setTimeouts">&#x23;</a>
设置超时,以亳秒为单位（1秒为1000毫秒）。

### webRestGradioObject.submit() <a id="webRestGradioObject.submit" href="#webRestGradioObject.submit">&#x23;</a>
[返回对象:webRestGradioTaskObject](#webRestGradioTaskObject)

### webRestGradioObject.submit(apiName,params) <a id="webRestGradioObject.submit" href="#webRestGradioObject.submit">&#x23;</a>
异步执行远程函数。  
返回对象提供 eventId , fnName 属性以及 getResult,cancel 方法。

### webRestGradioObject.upload(files,stepProc,blockSize) <a id="webRestGradioObject.upload" href="#webRestGradioObject.upload">&#x23;</a>
上传文件，参数 @1 可指定上传文件路径或者包含多个上传文件路径的数组。  

可选用参数 stepProc 指定上传进度回调函数，  
回调参数依次为 sendData,sendSize,contentLength,remainSize。  
可选用参数 @blockSize 自定义上传块大小。  

每个上传成功的文件会返回一个包含 path,url,origName,size,meta 字段的表。  
如果参数为数组返回值也是数组，如果参数为单个字符串则返回单个文件信息表。  
失败返回 null,错误信息,错误代码

### webRestGradioObject.xcall(apiName,params) <a id="webRestGradioObject.xcall" href="#webRestGradioObject.xcall">&#x23;</a>
当参数 @3 未指定 SSE 回调函数时，此函数直接返回结果。

### webRestGradioObject.xcall(apiName,params,sseCallback) <a id="webRestGradioObject.xcall" href="#webRestGradioObject.xcall">&#x23;</a>

```aardio
webRestGradioObject.xcall("api-name",{},function(eventStream){  
	if(eventStream.event == "complete"){  
		var result = eventStream.data;    
	}  
	elseif(eventStream.event == "error"){  
		/*参数 @apiName 指定要调用的远程函数名称或数值索引。  
参数 @params 指定调用参数（通常是一个表对象，请求时自动转换为 JSON）。  
SSE 回调函数的参数为 eventStream，这是一个表对象。  
回调函数返回 false 退出函数并取消当前任务。*/  
	}  
});
```

## webRestGradioObject.xcall 成员列表 <a id="webRestGradioObject.xcall" href="#webRestGradioObject.xcall">&#x23;</a>

xcall 对象是对 `baseApi.call[apiName]` 对象的封装。  
用于调用 API 端点  `/call/<api-name>` 的对象。

调用远程方法。  
如果调用成功且返回器返回了 event 类型为 "complete" 或 "error" 类型的数据，  
则第一个返回值为服务器执行成功返回的数据（表对象 或 null 值），而第 2 个返回值为服务器返回的错误对象（null 或 字符串）。  
否则成功返回 true，失败返回 null,错误信息。

### webRestGradioObject.xcall.* <a id="webRestGradioObject.xcall.any" href="#webRestGradioObject.xcall.any">&#x23;</a>
返回远程函数对象。  
使用返回函数的方法与使用 xcall 相同，区别是不需要指定 @apiName 参数。

## webRestGradioTaskObject 成员列表 <a id="webRestGradioTaskObject" href="#webRestGradioTaskObject">&#x23;</a>

### webRestGradioTaskObject.cancel() <a id="webRestGradioTaskObject.cancel" href="#webRestGradioTaskObject.cancel">&#x23;</a>
取消任务

### webRestGradioTaskObject.eventId <a id="webRestGradioTaskObject.eventId" href="#webRestGradioTaskObject.eventId">&#x23;</a>
事件 ID

### webRestGradioTaskObject.fnName <a id="webRestGradioTaskObject.fnName" href="#webRestGradioTaskObject.fnName">&#x23;</a>
函数名或索引

### webRestGradioTaskObject.getResult(sseCallback) <a id="webRestGradioTaskObject.getResult" href="#webRestGradioTaskObject.getResult">&#x23;</a>
获取执行结果。  
可选用参数 @sseCallback 指定 SSE 回调函数，用法参考 web.rest.gradioClient 对象的 xcall 函数。
