技术圈开发者交流群:

使用 Spring AI 在 Spring Boot 中构建生成式 AI 应用

苟日新,日日新,又日新。

生活从不眷顾因循守旧、满足现状者,从不等待不思进取、坐享其成者,而是将更多的机遇留给善于和勇于创新的人们。

在人工智能飞速发展的今天,无论是 AI 相关的技术,还是 AI 相关的产品,都是层出不穷、日新月异。

Spring AI 是一个基于Spring生态的 AI 接入组件,简化人工智能应用的开发流程,提供了抽象接口,作为开发 AI 应用程序的基础。 这些抽象具有多种实现,支持以最少的代码更改轻松交换组件。

Java 03月03日 1428

Ollama 让开源大语言模型触手可及

前有 ChatGPT 的横空出世,现有 DeepSeek 的后生可畏。

在人工智能(AI)飞速发展的今天,大语言模型(LLMs)百家争鸣、群英荟萃,AI已经成为人们茶余饭后必备的话题,更是人们工作、学习中必备的工具。

PHP 02月24日 8826

在 Linux 下安装 OpenJDK 并配置 Maven 环境

OpenJDK 是 Java 开源实现的官方版本,涵盖多个版本分支和衍生发行版。

其衍生版本有:AdoptOpenJDK、Amazon Corretto、Azul Zulu、BellSoft Liberica、Red Hat OpenJDK等。

Java 2024年08月02日 408

在 Linux 中如何开启 ssh 远程连接

无论你是什么方向的开发者,在日常工作中必不可少的要和 Linux 系统打交道。在打交道之前,就必须先远程连接上去,应该很少人人会使用VNC远程连接吧,更何况很少作为开发的Linux系统不会安装图形库界面吧,那就必须得使用命令行SSH远程连接了。

要安装SSH,肯定的直接在机器上操作,物理机你就接个键盘、显示器,虚拟机直接用界面连接操作。

首先需要安装openssh-server,如果已经安装可跳过下面的命令。

PHP 2024年07月20日 170

在 Laravel 中使用 Vite 来构建静态资源

之前做Laravel项目,一直使用的是Laravel Mix打包静态资源。但是随着Vite的横空出世,Laravel已经默认使用Vite来打包静态资源了。

在此之前,你需要创建一个Laravel项目,并准备PHPNode.js环境。

LaravelVite插件是laravel-vite-plugin。项目默认的package.json中的依赖项已经包含了,只需要安装一下即可。

PHP 2024年06月28日 1091

在 Laravel 中结合 Vite 搭建 Vue 应用

Laravel 是一个优雅的 PHP WEB框架,在早期的版本中,一般是采用Mix搭配webpack来构建前端资源。 Vue 是一个渐进式 JavaScript 框架,Vite 是下一代前端开发和构建工具。那么这个组合起来,堪称绝美

下面是我所使用的版本:

  • PHP 8.2
  • Laravel 11.8.0
  • Node 20.13
  • Vite 5.0
  • Vue 3.4

这里直接使用composer创建Laravel项目。

PHP 2024年05月20日 6784

Laravel 框架中如何打印 sql 语句到日志中

在开发过程中,难免需要对 sql 语句的问题排查,我们可以把程序执行中运行的 sql 语句记录到日志中。

甚至,还可以记录 sql 语句的执行时间,对执行时间过长的 sql 的语句增加预警等。

Laravel 框架提供的 sql 监听事件,只需要在 Provider 的 boot 方法里增加监听回调即可。

PHP 2024年04月19日 848

Go 语言包管理利器:go mod

包管理工具已是编程语言的必备的工具,用于解决项目中复杂的依赖关系,提供包的版本控制、安装、更新等工具。Java 中有 MavenPython 中的 pip,还有 PHPcomposer 等,那么 Go 目前已经有非常成熟的包管理工具:go mod

在一个还没有使用go mod的项目中,需要使用go mod init初始化。

GoLang 2024年03月15日 5666

Kratos:适用于云原生时代的终极 Go 微服务框架

微服务是一种软件技术架构,是将一个大型的单个应用或服务拆分成多个微服务,可扩展单个组件而不是整个应用程序堆栈,从而满足服务等级需求。

Kratos 一套轻量级 Go 微服务框架,包含大量微服务相关框架及工具,是一个 Web 应用程序框架,具有富有表现力、优雅的语法。

它致力于给开发者提供完整的微服务研发体验,通过整合,可以产出一套完整的微服务治理体系,从而让开发者更加专注于业务交付。

微服务,通过可独立演进的微服务快速交付生产级功能。

GoLang 2024年02月02日 2812

Linux 中如何安装 etcd 分布式数据库

etcd 是一个高可用的分布式键值(key-value)数据库,etcd基于Go语言实现,在分布式系统被广泛应用。它的设计目标是为分布式系统提供一个高可用、强一致性且易于使用的基础组件。

这里直接使用官方已经编译好的。

指定版本,并使用curl下载:

ETCD_VER=v3.4.13
DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download

curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
Linux 2024年01月23日 186

在 CentOS 7.9 中使用 Yum 快速安装 PHP 8.3

目前,CentOS 7.9 已经算是很古老的系统了,但仍然还在很多公司中使用。安装 PHP 有编译安装,也可以使用 Yum 安装,前者较为复杂,耗时耗力,后者就很简单而且很快。但是官方的 Yum 中自带的 PHP 版本也只有很古老的 PHP 5.4 了,要想安装比较新的 PHP 8 就需要使用第三方提供的 Yum 源了。

Remi's RPM repository(简称 Remi 仓库)是由法国开发者 Remi Collet 维护的一个针对 Red Hat Enterprise Linux(RHEL)及其衍生发行版(如 CentOS、Oracle Linux 等)的第三方软件仓库。

PHP 2023年12月09日 417

在 CentOS 中更新第三方 Yum 源

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"

现在,在 CentOS 中使用yum安装软件时,报上面的错误,这是由于 CentOS 官方已经对 CentOS 7 的 yum 源停止维护了。

Linux 2023年11月07日 578

在 CentOS 系统中配置静态 IP 和 DHCP 等网络连接信息

新装的 CentOS 系统没有网络,那么我们需要配置网络信息,并不像在 Windows 中打开控制面板-网络连接中可以图形化的配置网络信息。在 Linux 中都需要在命令行中进行,查看网卡接口信息、编辑网络连接信息、再重启网卡等一系列命令行操作,不好记容易忘,这里简单做个笔记,方便以后用到的时候查看备用。

在 Linux 中查看网络接口信息,一般有ifconfigip addr等,但是最小化安装的系统通常是没有ifconfig命令的。

Linux 2023年10月22日 387

Casbin 中 Model 的语法详解

Casbin 是一个高效强大的开源访问控制框架,它支持 ACL、RBAC、ABAC 等多种模型。

Model,即模型,是 Casbin 的一个重要组成部分,模型的定义简单而复杂,且充满学问Model 的作用,是对权限模型的定义,例如:aclrbacabac 等权限模型。

模型配置主要有五个部分:[request_definition],[policy_definition],[role_definition],[policy_effect] 和 [matchers],分别表示请求定义、策略定义、角色定义、策略效果定义、匹配器,其中 [role_definition] 角色定义是用于基于角色的模型(RBAC),支持用 # 开头表示注释。

PHP 2023年09月20日 3741

利用 PHP-Casbin 中的优先级模型来做权限控制

优先级模型,所谓优先级,是指按一定的顺序加载策略。

优先级高的策略先加载,先加载的策略具有较高的优先级。

PHP-Casbin 目前支持三种模式:隐式优先顺序加载策略、显示优先顺序加载策略、基于角色和用户的层级关系加载策略。

PHP 2023年08月15日 6768
鄂ICP备19028750号-1 @copyright 2024 tech1024.com