开源!一个项目集成知识库/图片理解/图片生成/文本流对话

UNI-AI(AI聚合)

国内内外的ai聚合,统一页面可以选择不同的ai厂家和不同的模型,内置知识库,图片理解,文本对话,预置角色。支持阿里灵积/百度千帆/OpenAI/Kimi/智谱清言/讯飞星火

项目内容

厂家文本对话图片理解图片生成知识库(向量数据库)预置角色
OpenAI
阿里灵积
百度千帆×计划中
讯飞星火×计划中×
智普清言
kimi×计划中×

知识库

知识库使用教程
知识库

图片生成

图片生成

图片理解

图片理解

文本对话

SSE文本对话

项目安装

docker-compose方式快速安装
源码方式安装

项目结构

  • uni-ai-admin 聊天界面+后台管理
    • scripts
      • generate-api.js 请求后端生成src/apis下的接口和ts类型
    • src
      • apis 调用后端的接口和接口的ts类型
      • assets 静态资源
      • components 全局通用组件
      • layout 页头/页签管理/左侧树菜单
      • router 路由
      • store 全局级别的状态管理
      • utils 工具
      • typings 通用ts类型
      • views 页面
        • xxx(如: menu)
          • xxx-vuw.vue 入口页面,在router中注册
          • components 页面级别的通用组件
            • xxx-create-form.vue 创建表单
            • xxx-update-form.vue 编辑表单
            • xxx-table.vue 展示表格
            • xxx-query.vue 查询表单
            • xxx-dialog.vue 对话框
          • store 页面级别的状态管理,上述几个组件共享store中的变量
      • App.vue 整个项目的入口
      • main.ts vue实例初始化
    • env.development 开发态环境变量
    • env.production 生产态环境变量
    • .eslintrc.js eslint配置
    • .prettierrc.json prettier配置
    • env.d.ts 全局ts类型声明文件
    • package.json npm依赖
    • tsconfig.json ts配置
    • tsconfig.node.json 与打包相关的ts配置,和web开发无关(dev dependencies)
    • tsconfig.app.json web开发相关的ts配置(dependencies)
    • view.config.js vite配置
  • uni-ai-server Java服务端
    • buildSrc 通用的依赖和配置,如lombok,springboot依赖
    • common 通用的类
    • generator-core 代码生成器的注解部分
    • generator-processor 代码生成器的实现部分
    • gradle 依赖版本号管理
    • scripts 数据库sql脚本
    • server 后端启动模块
      • src/main
        • dto jimmer的dto文件,可以参考jimmer官方文档
        • java/io.qifan.server
          • ServerApplication 启动类
          • infrastructure 基础设施配置
          • ai ai模块
            • message 聊天消息
            • session 聊天会话
            • model AI模型
            • role AI角色
            • tag AI模型标签
            • uni 各厂家模型统一接口
          • dict 字典管理
          • menu 菜单管理
          • role 角色管理
          • user 用户管理
          • setting token价格配置
          • wallet 钱包计费
    • spring-ai-dashscope-spring-boot-stater 阿里灵积AI
    • spring-ai-qianfan-spring-boot-stater 百度千帆AI
    • spring-ai-spark-spring-boot-stater 讯飞星火AI
    • spring-ai-kimi-spring-boot-stater kimi AI
    • spring-boot-starter-oss 阿里云oss,腾讯云oss,nginx静态文件服务
    • spring-boot-starter-sms 短信发送服务,阿里云短信,控制台短信测试
    • spring-boot-starter-security SaToken配置

技术栈

管理端

技术说明官网
Vite开箱即用的现代前端打包工具https://cn.vitejs.dev/
Vue3Vue 基于标准 HTML 拓展了一套模板语法。Vue 会自动跟踪 JavaScript 状态并在其发生变化时响应式地更新 DOMhttps://cn.vuejs.org/
Vue RouterVue官方路由管理框架https://router.vuejs.org/
ElementUI Plus支持TypeScript提示的Vue3前端UI框架https://element-plus.gitee.io/zh-CN/
Pinia全局状态管理框架,支持TypeScript类型提示https://pinia.web3doc.top/
TypeScript让 JS 具备类型声明https://www.typescriptlang.org/
ESLint语法校验和格式整理https://eslint.org/
DayJS日期取值/赋值/运算等操作https://dayjs.fenxianglu.cn/
LodashJsJS各种常用的工具方法https://www.lodashjs.com/
SSE.jsSSE流式请求
md-editor-v3markdown语法解析

服务端

技术说明官网
SpringBoot3Web应用开发框架,需要JDK17及以上版本SpringBoot
SpringAi统一AI的聊天模型,embedding模型,向量数据库的入参模型等等SpringAI
SaToken一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题SaToken
Jimmer不仅有Mybatis的灵活性也有Hibernate的复用性Jimmer
QiFanGenerator自己写的代码生成器,快速生成前后端增删改查。无官网,在代码里面参考@GenEentity@GenField就两个注解就行了
阿里云OSS存储图片,学习用途基本上免费。对象存储 OSS-阿里云帮助中心 (aliyun.com)
微信小程序服务端API用户登录,订阅消息等接口微信开放文档 (qq.com)
微信支付V3用户支付订单微信支付开发者文档 (qq.com)
gradle本项目有许多模块,gradle起来比较方便
  • 22
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个简单的 JavaScript 代码例子,可以用来识别图片中的文本: ``` function recognizeTextInImage(image) { // 创建一个新的 OCR 引擎实例 const ocrEngine = new OcrEngine(); // 将图像传递给 OCR 引擎进行文本识别 const text = ocrEngine.recognizeText(image); // 输出识别出的文本 console.log(text); } ``` 需要注意,这仅仅是一个示例代码,你需要确保 OcrEngine 类型存在,并且有 recognizeText 方法。还需要确保传递给 recognizeText 方法的图像是正确的,并且具有可用于文本识别的质量。 ### 回答2: 生成一个识别出图片中的文本的JS代码并不容易,但可以通过利用现有的图像处理库和OCR(光学字符识别)技术来实现。下面是一个简单的示例: 首先,我们需要使用图像处理库,例如HTML5的canvas或第三方库,将图像加载到Web页面中。 接下来,使用OCR技术,可以选择使用开源的Tesseract.js库。它是一个基于Tesseract OCR引擎的JavaScript库,可以通过一系列API来进行图像文本识别。 在代码中,调用Tesseract.js提供的方法,将图像传递给OCR引擎进行处理。例如,可以使用`Tesseract.recognize()`方法来识别图像中的文本。 示例如下: ```javascript // 创建一个canvas元素 const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); // 加载图像 const img = new Image(); img.onload = function() { canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img, 0, 0); // 使用Tesseract.js进行文本识别 Tesseract.recognize(canvas) .then(function(result) { console.log(result.text); // 输出识别结果 }) .catch(function(error) { console.error(error); }); }; // 将图像URL传递给img.src img.src = 'image.png'; ``` 上述代码中,我们创建了一个canvas元素用于绘制图像,并加载了一个图像。然后使用Tesseract.js库调用`recognize()`方法,将canvas传递给OCR引擎进行文本识别。最后,在`then`回调函数中,可以获取并处理文本识别结果。 需要注意的是,这只是一个简单的示例,实际应用中可能需要根据具体需求进行更多的图像处理和结果处理操作。同时,由于图像处理和OCR技术都是复杂的领域,所以可能需要进一步研究和调试以实现更准确和高效的文本识别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值