作者:Sven Loesekann
技术:角,角度,角质材料,分形码,春季启动,Spring AI,Openai,Ollama,Ollama,Postgresql(vector,hstore),Liquibase,JPA,Gradle,Java,Java
这是一个显示如何使用Springai与库中的文档聊天的项目。然后可以将文档上传存储在普通和矢量数据库中。 AI用于从存储在矢量数据库中的文档的块中创建嵌入。在聊天问题中,可以问到嵌入式嵌入,并用于向矢量数据库的请求。最低距离的文档向量用于从数据库中加载文档,并根据文档内容令牌请求AI的答案。这使AI能够根据文档的内容生成答案并限制幻觉。提供了指向源文档的链接以进行进一步研究。
该项目使用带有Spring AI的Spring Boot访问OpenAI和Vector数据库。 PostgreSQL DB与向量,Hstore和UUID-OSSP扩展一起使用。 Liquibase用于管理数据库迁移。 JPA用于由REST控制器在服务中的数据库访问。对于前端角度,角度材料和打字稿用于创建文档表,上传对话框和文档聊天。 Angular CLI用于项目构建的前端构建和Gradle。
Ollama用于使用本地运行的AI/LLM型号。 Ollama可以在本地机器中安装或作为Docker图像运行。 Ollama支持用于不同用例的AI/LLM型号库。诸如用于图像描述的LLAVA之类的模型,可以使用用于抹布的问题答案的猎鹰,SQLCoder,SQLCoder和用于功能调用的混音。如果Ollama可用,可以使用GPU,并且在没有它们的情况下可以在CPU上使用。 Spring AI具有Ollama的支持,可以使用类似于使用AI服务的使用。在当前的CPU上,通常存在性能问题。 CPU提供商希望将来将AI引擎添加到其CPU中,以解决这些问题。
该项目将带有Spring AI的Spring Boot使用Spring Boot来质疑与PGVECTOR扩展和Ollama一起使用PostgreSQL的图像数据库。对于导入和调整大小的图像是用Ollama本地运行的LLAVA模型生成的描述。这些描述是在嵌入式中转动的,并在矢量数据库中存储了描述。图像和元数据存储在关系数据库中。图像数据库的问题是在嵌入式中转动的,并且对矢量数据库进行查询。最好的匹配包括图像和描述。结果显示在前端。这是新型的图像搜索,在AI/llms成为可用性之前是不可能的。
该项目使用Spring AI将LLMS的问题转换为SQL查询,并在前端显示结果。基于为关系数据集提供的元数据,LLM能够为表和列的元数据创建嵌入。该项目还为某些列的内容创建嵌入,以便能够确定是否应将列用作SQL查询中的JOIN。通过嵌入元数据,LLM能够在合理的SQL查询中提出问题,并在前端显示结果。前端使用具有灵活数量的圆柱和行的角材料表。
该项目使用Spring AI将有关书籍的问题转化为“ REST功能”调用OpenLibrary API。它使用Llama3.1模型和Spring AI函数调用API。 API响应用于创建响应。
该项目使用Spring AI生成测试类。为此,提供了要测试的课程,并且要测试的课程取决于。还可以提供测试示例类。然后,基于Ollama的AI/LLM将获得所有信息的提示,并生成了测试类源的草稿。
该项目使用Spring AI来生成书籍摘要。要生成摘要,必须提供上一章之后的章节标题和标题。然后,生成了章节的摘要。本章摘要创建了一本书摘要。
该项目显示Howto使用Spring AI根据提供的一组文档来生成答案,并具有指向源的链接。 Angular前端为后端提供了用户界面,并显示了响应。
该项目显示了如何使用Spring AI生成上传图像的描述并存储图像,描述和描述嵌入数据库中的描述。向图像数据库提出的问题是将嵌入式解散的,并返回图像的最佳拟合描述。 Angular前端提供了一个用户界面来显示结果并上传图像。
该项目显示Howto使用Spring AI根据表/列提供的元数据生成SQL查询。 Angular Frontend提供了一个用户界面,以在表中显示结果。
该项目显示Howto使用Spring AI选择要调用的REST接口并提供其余呼叫的参数。 Angular前端提供了用户界面来提出问题并显示其余呼叫的结果。
该项目显示了如何使用Spring AI创建图像数据库,该数据库可以通过自然语言问题查询,并返回最接近的匹配图像,并使用其描述。
Spring AI使用OpenAI / Ollama服务简单而有用,该项目证明了这一点。
该项目具有系统上下文图,一个容器图和组件图。这些图是用structurizr创建的。该文件运行STRUCTURIZR.SH包含用于使用structurizr的命令,并且目录structurizr包含DSL文件。
在Helm目录中是一个Kubernetes设置,可使用Minikube运行AidocumentLibraryChat项目。 Helm图将Postgres数据库和AIDOcumentLibraryChat使用所需的参数(springprofile in value.yaml)运行。它使用JDK 16的资源限制支持来限制内存。 Kubernetes限制了CPU的使用,并使用了Spring Actuator提供的启动企业和Livices Probes。
在runpostgresql.sh中,文件是在本地使用向量扩展名来拉出并运行PostgreSQL Docker映像的命令。
要获取OpenAI API密钥,您需要在https://platform.openai.com上创建一个帐户,并在用户设置中创建一个密钥。该密钥必须在应用程序中添加。作为替代方案,它可以作为环境变量“开放式键”提供。
Ollama可以在本地运行AI模型。文件Runollama.sh具有将其作为Docker容器运行的命令。需要使用“ Useollama = true” Gradle Build属性构建应用程序,以包括依赖项。该应用程序需要从“ Ollama”配置文件开始,以打开配置/功能以使用基于Ollama的模型。 Ollama支持GPU加速。
具有向量扩展0.5.1或更新的载体扩展的PostgreSQL
Java 21或更新
Gradle 8.3或更新
Nodejs 18.13.x或更新
NPM 8.19.x或更新
角CLI 17或更新