- 博客(386)
- 资源 (27)
- 收藏
- 关注
原创 大模型应用:LangChain-Golang核心模块使用
LangChain是一个开源的框架,它提供了构建基于大模型的AI应用所需的模块和工具。它可以帮助开发者轻松地与大型语言模型(LLM)集成,实现文本生成、问答、翻译、对话等任务。LangChain的出现大大降低了AI应用开发的门槛,使得任何人都可以基于LLM构建自己的创意应用。本文将介绍基于Golang使用LangChain相关模块。
2024-06-15 21:06:43
3254
原创 大模型应用:基于Golang + 大模型构建简易的电商售前对话服务
某X互联网电商公司为了解决当前大量用户的售前咨询问题,需要建设一个不需要客服介入的简易电商售前机器人,用于回答用户的售前问题,并给出基本可靠的咨询回答。当前大模型如gpt、baichuan、文心等均有开放使用的OpenAPI接口,且调用费用低廉。可以基于大模型来构建简易的电商售前对话服务。本文介绍一种基于Golang + gpt-3.5-turbo构建对话服务的方案。
2024-06-08 22:41:21
1504
2
原创 大模型应用:Prompt-Engineering优化原则
随着大模型的出现及应用,出现了一门新兴“技术”,该技术被称为Prompt-Enginerring。Prompt Engineering即提示工程,是指在使用大语言模型时,编写高效、准确的Prompt(提示词)的过程。通过不同的表述、细节和关键词,使大模型更好服务于特定任务。
2024-06-02 11:53:03
1692
原创 大模型应用:基于Golang实现GPT模型API调用
当前OpenAI提供了开放接口,支持通过api的方式调用LLM进行文本推理、图片生成等能力,但目前官方只提供了Python SDK。为了后续更方便集成和应用,可以采用Golang对核心推理调用接口进行封装,提供模型调用能力。
2024-05-26 22:23:34
1714
原创 大模型应用:LLM基本原理及应用场景
23年以来,随着OpenAI公司的ChatGPT横空出世,大模型一词开始火爆全球。国内外以OpenAI、Google、百度、阿里、字节等大厂为代表,相继推出一系列大模型及其应用,涉及社交、问答、代码助手等多个方面。大模型究竟是什么,和基础的垂类模型/多模态模型有何差异?为什么可以基于大模型来构建一系列垂类应用,以及可以使用大模型构建什么应用?
2024-05-26 14:47:19
1140
原创 Golang:微服务常用代码分层结构
代码分层结构是一个老生常谈的话题,好的代码结构能够使得系统易于理解、开发及维护,如果代码结构很混乱就会使得不同层级的代码块耦合,导致难以维护和拓展。
2023-09-02 17:57:50
2371
原创 系统设计:通用思路之4S分析法
系统设计是一个定义系统架构、功能模块、服务及接口和数据存储等满足特定需求的过程。系统设计是在面向对象设计的基础上更高层次的设计,关注整个系统的架构、组件之间的协作和通信,以及满足系统需求的实现。关键点在于:满足实际需求、具备可拓展性、稳定性等,常见如Twitter、网约车系统设计。
2023-08-13 17:58:14
1045
原创 Golang:reflect反射的使用例子
reflect包定义了“反射”相关能力,“反射”在计算机学中是指计算机程序在运行时(runtime)可以访问、检测和修改它本身状态或行为的一种能力。基于反射特性可以通用化地解决一些需要频繁修改代码及硬编码问题,但是执行效率会被降低。
2023-02-20 09:22:55
598
原创 Golang原理分析:闭包及for range延迟绑定问题原理及解决
当一个函数引用了环境的变量,被引用的变量与该函数同时存在组成的系统,被称为闭包。
2022-12-17 18:32:54
1247
原创 Golang原理分析:切片(slice)原理及扩容机制
Go切片的特性:切片的本质是引用底层数组头指针+当前切片长度+底层数组大小:即array、len和cap:使用时通过make关键字来进行初始化切片分配一个新的底层数组,或者是基于指定的数组进行切片化。
2022-12-04 19:17:02
2230
原创 Golang开发习惯:变量、常量声明&使用惯例
Golang开发中,可遵守简单且一致的命名原则,力求命名精简、易懂和一致。变量声明已存在类型信息时,不要重复类型信息:使用驼峰形式来声明变量,而不是下划线形式:常量声明使用驼峰形式来声明变量,而不是下划线形式:对于专有名词或特定常量,可使用全大写形式:
2022-12-04 12:29:26
757
原创 Golang源码分析:golang/sync之singleflight
golang/sync库拓展了官方自带的sync库,提供了errgroup、semaphore、singleflight及syncmap四个包,本次分析singlefliht的源代码。singlefliht用于解决单机协程并发调用下的重复调用问题,常与缓存一起使用,避免缓存击穿。
2022-11-06 16:18:02
659
原创 Golang源码分析:golang/sync之errgroup
golang/sync库拓展了官方自带的sync库,提供了errgroup、semaphore、singleflight及syncmap四个包,本次先分析第一个包errgroup的源代码。errgroup提供了类似于WaitGroup的组织子任务运行的能力,但是提供了错误处理和通过ctx取消子任务的能力。
2022-10-30 17:41:16
847
原创 Golang源码分析:本地缓存库cache2go
cache2go是一款由golang实现的本地缓存库,提供并发安全的读写操作,具有过期时间控制等特性。
2022-10-19 12:27:06
1224
原创 缓存读写策略:CacheAside、Read/WriteThrough及WriteBack策略
对于缓存的读写来说,通常存在三种使用方式,也就是缓存的三种读写策略:CacheAside、Read/WriteThrough及WriteBack策略。
2022-07-23 22:05:05
1950
原创 如何做数据平滑迁移:双写方案
数据迁移指的是将一批数据从同构存储系统(如MySQLA到MySQLB)或异构存储系统(如MySQL-MongoDB)间搬运迁移。数据双写迁移是最常用的一种数据迁移方案,可以保证迁移过程是在线的、迁移前后数据是一致的、迁移过程是可回滚的。数据双写迁移方案分为五大步,分别是:同步、双写、校验、切读、切写。...
2022-07-22 10:16:08
10463
6
原创 数据库查询优化:主从读写分离及常见问题
大部分系统的访问模型是读多写少,读写请求量的差距可能达到几个数量级。当单机MySQL无法承受过高的QPS时,可以组建MySQL主从读写分离集群来将读请求分摊到多个从节点中,以实现水平拓展。
2022-06-25 15:36:52
951
原创 高并发系统设计:通用的设计方法及架构分层
极客高并发系统设计课程学习笔记:高并发系统设计常用方法是水平拓展、异步及缓存,并通过系统分层来达到单一职责、易维护及拓展的特性。
2022-06-14 22:35:46
2374
1
原创 MongoDB:常见概念及问题总结
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。 MongoDB 文档类似于 JSON 对象的BSON格式存储(实质上是序列化的JSON,存储空间更小)。字段值可以包含其他文档,数组及文档数组。
2022-05-14 22:57:34
1454
原创 minikube无法启动:“minikube service hello-minikube”无法访问问题解决
使用minikube可以快速地在本机搭建kubernetes实验集群,用于学习和模拟kubernetes集群操作,但是在跟着官网下载好kubernetes和minikube后,在执行`minikube service hello-minikube`时启动了浏览器,但是却无法看到内容,说明hello-minikube部署出现问题,不合符预期
2022-04-10 16:57:35
4837
原创 容器化的演进:从Docker到Kubernetes
当前,Docker这门容器化技术已经被很多公司采用,从单机走向集群已成为必然,所以对于大规模容器的管理,如果只是依赖于人工手动运维,那么会出现难以管理、管理混乱的问题,而Kuberentes就是为了解决大量容器的管理和运维问题而出现的容器管理平台。
2022-04-10 10:01:20
1198
原创 一文带你学会Linux Shell:核心操作及命令总结
Shell的中文意识为“壳”,这层壳套在kernel(内核)之外,是用户与Linux 操作系统之间交互的一个命令解释器,是用户与Linux操作系统之间的桥梁。本文总结了十大块Linux Bash Shell常用操作及命令,带你快速入门Shell的世界。
2022-04-05 10:54:23
508
原创 SpringCloud:核心组成架构
Spring Cloud基于Spring Boot框架构建微服务架构,用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
2022-04-03 12:04:31
783
原创 计算机组成原理核心总结
冯·诺依曼体系结构(Von Neumann architecture),也叫存储程序计算机结构。计算机组成原理围绕着该体系结构展开,介绍了运算器、控制器及存储器原理。
2022-03-20 16:41:27
3908
原创 分布式基础-常见分布式ID生成方案
分布式ID即指的是在分布式系统中,全局的唯一标识;分布式ID其实与单机下的ID区别不大,其作用都是起到标识某个订单或数据、消息等,使其在分布式系统中全局唯一。
2022-03-19 11:41:32
1158
原创 RocketMQ:核心特性及基本原理总结
本文介绍RocketMQ核心特性:主从复制、刷盘及复制策略、顺序写入、零拷贝机制、事务消息、有序消息等基本原理。
2022-01-23 17:07:41
2298
原创 RocketMQ:与Kafka对比应用场景及组成架构
RocketMQ 是阿里巴巴开源的分布式消息中间件,前身为阿里内部消息系统Notify及MetaQ。RocketMQ被广泛应用于电商、订单、金融等分布式应用领域。
2022-01-15 17:26:22
2189
原创 ElasticSearch:相关性评分原理及应用
相关度是指两个事物间相互关联的程度,在检索领域特指检索请求与检索结果之间的相关程度。在ES中返回的每一条结果中都会包含一个_score字段,这个字段的值就是当前文档匹配检索请求的相关性评分。
2022-01-03 17:47:12
2449
原创 ElasticSearch:全文检索及倒排索引原理
全文检索一般是查询包含某一或某些关键字记录,所以通过文档整体值建立的索引对提高查询速度是没有任何帮助的。为了解决这个问题,人们创建了一种新索引方法,这种索引方法就是倒排索引。
2021-12-18 15:32:22
2605
原创 ElasticSearch:文档字段类型及存储
文档的具体内容都以字段为单元保存,在ElasticSearch中建立的倒排索引本质上是对字段及词项建立的索引,本文将介绍文档的字段类型及存储方式。
2021-12-14 12:41:24
3514
2
原创 MongoDB:海量存储基础-分片架构
分片是数据库中常用的提升存储容量的方式,它基于水平拓展的思想,将大量的数据按一定规则分配到不同的服务器中存储,比如MySQL集群可以借助Sharding-JDBC等外部框架对数据进行分片存储,而MongoDB则提供了原生的分片能力支持。
2021-12-11 16:26:42
4205
原创 MongoDB:高可用基础-副本集原理
在生产环境中,不建议使用单机版的MongoDB服务器,因为有可能出现单点问题:单机版的MongoDB无法保证可靠性,一旦进程发生故障或是服务器宕机,业务将直接不可用,一旦服务器上的磁盘损坏,数据会直接丢失,而此时并没有任何副本可用。为了保证MongoDB正常对外提供服务,需要搭建主备架构,确保在主节点发生故障时能够有从节点继续对外提供服务。MongoDB在设计时已考虑到可用性问题,在其设计中原生支持了主备架构,也就是所谓的副本集架构。
2021-12-08 10:00:48
2631
Java面试题库
2018-11-10
springboot2.0快速整合配置大全
2018-11-10
《第一本Docker书》高清带目录pdf版
2018-10-13
分布式系统采用技术及案例分析
2018-10-09
sqldeveloper
2018-09-07
java开发的bos物流项目(ssh框架)
2018-08-06
html_css_javascript语法手册
2018-05-16
用原生Servlet+Jsp写的商城Demo 解压密码:pbrshop
2018-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人