+
+## 运行属性
+
+插件执行阶段:`默认阶段`
+插件执行优先级:`400`
+
+
+## 配置说明
+
+| 名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
+| ------------- | -------- | -------- | ------ | -------------------------------------- |
+| `apiKey` | string | 必填 | - | 用于在访问OCR服务时进行认证的令牌。 |
+| `type` | string | 必填 | - | 后端OCR服务提供商类型(例如dashscope) |
+| `serviceHost` | string | 必填 | - | 后端OCR服务域名 |
+| `serviceName` | string | 必填 | - | 后端OCR服务名 |
+| `servicePort` | int | 必填 | - | 后端OCR服务端口 |
+| `model` | string | 必填 | - | 后端OCR服务模型名称(例如qwen-vl-ocr) |
+| `timeout` | int | 选填 | 10000 | API调用超时时间(毫秒) |
+
+## 示例
+
+```yaml
+"apiKey": "YOUR_API_KEY",
+"type": "dashscope",
+"model": "qwen-vl-ocr",
+"timeout": 10000,
+"serviceHost": "dashscope.aliyuncs.com",
+"serviceName": "dashscope",
+"servicePort": "443"
+```
+
+请求遵循openai api协议规范:
+
+URL传递图片:
+
+```
+messages=[{
+ "role": "user",
+ "content": [
+ {"type": "text", "text": "What's in this image?"},
+ {
+ "type": "image_url",
+ "image_url": {
+ "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg",
+ },
+ },
+ ],
+}],
+```
+
+Base64编码传递图片:
+
+```
+messages=[
+ {
+ "role": "user",
+ "content": [
+ { "type": "text", "text": "what's in this image?" },
+ {
+ "type": "image_url",
+ "image_url": {
+ "url": f"data:image/jpeg;base64,{base64_image}",
+ },
+ },
+ ],
+ }
+],
+```
+
+以下为使用ai-image-reader进行增强的例子,原始请求为:
+
+```
+图片内容是什么?
+```
+
+未经过ai-image-reader插件处理LLM返回的结果为:
+
+```
+对不起,作为一个文本AI助手,我无法查看图片内容。您可以描述一下图片的内容,我可以尽力帮助您识别。
+```
+
+经过ai-image-reader插件处理后LLM返回的结果为:
+
+```
+非常感谢您分享的图片内容!根据您提供的文字信息,学习编写shell脚本对Linux系统管理员来说是非常有益的。通过自动化系统管理任务,可以提高效率并减少手动操作的时间。对于家用Linux爱好者来说,了解如何在命令行下操作也是很重要的,因为在某些情况下,命令行操作可能更为便捷和高效。在本书中,您将学习如何运用shell脚本处理系统管理任务,以及如何在Linux命令行下进行操作。希望这本书能够帮助您更好地理解和应用Linux系统管理和操作的知识!如果您有任何其他问题或需要进一步帮助,请随时告诉我。
+```
\ No newline at end of file
diff --git a/plugins/wasm-go/extensions/ai-image-reader/README_EN.md b/plugins/wasm-go/extensions/ai-image-reader/README_EN.md
new file mode 100644
index 000000000..953b73f1c
--- /dev/null
+++ b/plugins/wasm-go/extensions/ai-image-reader/README_EN.md
@@ -0,0 +1,94 @@
+---
+title: AI IMAGE READER
+keywords: [ AI GATEWAY, AI IMAGE READER ]
+description: AI IMAGE READER Plugin Configuration Reference
+---
+
+## Function Description
+
+By integrating with OCR services to implement AI-IMAGE-READER, currently, it supports Alibaba Cloud's qwen-vl-ocr model under Dashscope for OCR services, and the process is shown in the figure below:
+
+## Running Attributes
+
+Plugin execution phase:`Default Phase`
+Plugin execution priority:`400`
+
+## Configuration Description
+
+| Name | Data Type | Requirement | Default Value | Description |
+| ------------- | --------- | ----------- | ------------- | ------------------------------------------------------------ |
+| `apiKey` | string | Required | - | Token for authenticating access to OCR services. |
+| `type` | string | Required | - | Provider type of the backend OCR service type(e.g. dashscope). |
+| `serviceHost` | string | Required | - | Host of the backend OCR service. |
+| `serviceName` | string | Required | - | Name of the backend OCR service. |
+| `servicePort` | int | Required | - | Port of the backend OCR service. |
+| `model` | string | Required | - | Model name of the backend OCR service (e.g., qwen-vl-ocr). |
+| `timeout` | int | Required | 10000 | API call timeout duration (milliseconds). |
+
+## Example
+
+```yaml
+"apiKey": "YOUR_API_KEY",
+"type": "dashscope",
+"model": "qwen-vl-ocr",
+"timeout": 10000,
+"serviceHost": "dashscope.aliyuncs.com",
+"serviceName": "dashscope",
+"servicePort": "443"
+```
+
+Request to follow the OpenAI API protocol specifications:
+
+Pass images via URL:
+
+```
+messages=[{
+ "role": "user",
+ "content": [
+ {"type": "text", "text": "What's in this image?"},
+ {
+ "type": "image_url",
+ "image_url": {
+ "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/ctdzex/biaozhun.jpg",
+ },
+ },
+ ],
+}],
+```
+
+Pass images via Base64:
+
+```
+messages=[
+ {
+ "role": "user",
+ "content": [
+ { "type": "text", "text": "what's in this image?" },
+ {
+ "type": "image_url",
+ "image_url": {
+ "url": f"data:image/jpeg;base64,{base64_image}",
+ },
+ },
+ ],
+ }
+],
+```
+
+The following is an example of using ai-image-reader for enhancement. The original request was:
+
+```
+What is the content of the image?
+```
+
+The result returned by the LLM without processing from the ai-image-reader plugin is:
+
+```
+Sorry, as a text-based AI assistant, I cannot view image content. You can describe the content of the image, and I will do my best to help you identify it.
+```
+
+The result returned by the LLM after processing by the ai-image-reader plugin is:
+
+```
+Thank you for sharing the image! Mastering shell scripting is highly beneficial for Linux system administrators as it automates tasks, boosts efficiency, and cuts down manual work. For home Linux users, command-line skills are equally important for quick and efficient operations. This book will teach you to handle system management tasks with shell scripts and operate in the Linux command line. Hope it aids your Linux system management learning! Feel free to ask if you have more questions.
+```
\ No newline at end of file
diff --git a/plugins/wasm-go/extensions/ai-image-reader/ai-image-reader-en.png b/plugins/wasm-go/extensions/ai-image-reader/ai-image-reader-en.png
new file mode 100644
index 0000000000000000000000000000000000000000..495daee80b2150e18cd1b2ab2bcd048aed786399
GIT binary patch
literal 31168
zcmeHw2Urwawk{$H7(q}_l7JwMp_sS~^qV@uoSs31j RA*PoiD1~Z5N6nXUnCY7pBFLfe)Y~BXj0ObNLe0%)h9ym!|-D(
zDh5}v9X;LM7)Y?%z-=K*s|pOgTe%I&=RwMZNl}jKtABC^1M;I7ukInX!x9}JrIH(0
zVIVnh3QT!7)rH$%zzTf1C@m>SruN?JCG7c|+N!2McZ
z`EvgxAfF>DvFFB*aa{TYZ99kP&T1;bEt+XvCqBT0tvfhe7sk{J-4`bkrej?D$IY9g
z#}Cn;8*7dh9XiHsFvVq9aW39Vsjqk$;Ztn!=$ky=gWA~kJyp$tcJ957g)lx1)R$WF
zLi^9sg_dnhu0V1x0`PxS-UgzOlO35TDy}Q`g#+HDXOUO~@fQEn+7A>^A4I7i-zjMSYcwZ{95Tc_C)
zUt;h=PBjL3?&y8B=t~z6w0IwFt6OH|Z?Tv)_G*YIJv+iAr1ZBvp3xu%7MX}VqIO8x
zduzzKL0t+v(v4*hk 2P;=8GPqb)QS(Q$&eemc`Bn?uh_d{#qWt!igf#gA-0#$@JSd8k&IwOS
z(Afyv9%4Q){EdvLJCcP#ga$=X*7T_#xKXO8`Q*}NY)xM4_)R0Yl88#STt1hwLFS67
zs)q;HJ64$^|2ii!2^MI6V>HZ6u-CZ#eTu>CajHCbtBJFWd}hiWe)VVwhSFki9n1n_
zrSI-SL(4f3^@}f>>71y*n#P&JqV*7aiQC^=Hw;iEm87}nXf?jVG%z;#(_&>6Sx*Nz
zNmOYVuRu0efVO
72^W~cYwZ{@0keWdE
z{HjZ>>{{c2OJz``10@Cr^ij-Rr!?m;Ro&@aS~02orhNR3yZHiYaI-rBoAGDK#h+;5
zv|i}&B93?GggzGQmgiJCjVBgyuC!KMyD+cL>|GwbcXRd{>FM~^AX^USdb{<>Fm`4a
zs9=Ra`^+$Ty*gTHt8Qt>AZ*8ck(Mvn|Ib1
)
z($fo7(t4=WCCxFzK=pR5>BmwBfbgjrW($1@J~`^YQ@mz&`;u)W);<$tSoU^sY6$Br
zhb!b7PrndZhF?6I1i`l<+x!h0+dGse*FR>P?H=j1IMh-#myu6L^BBC#(&@W|{L{O5
z4d