阿里云新账号可使用各种云产品
试用链接

新购优惠
企业专享优惠
阿里云创业者计划是面向初创企业推出的一项扶持计划,致力于为初创企业构建智能时代的核心竞争力。

大语言模型(英文:Large Language Model,缩写LLM)是一种人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。LLM的特点是规模庞大,包含数十亿的参数。
LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。
例如,一个链可能包括一个提示模板、一个语言模型和一个输出解析器,它们一起工作以处理用户输入、生成响应并处理输出。
负责将语言模型响应构建为更有用的格式。
LlamaIndex 使用 LangChain 的 LLM 模块并允许自定义底层 LLM。LlamaIndex 是一个强大的工具,它提供了一个中央接口来将 LLM 与外部数据连接起来,并允许你根据你提供的数据创建一个聊天机器人。使用 LlamaIndex,您无需成为 NLP 或机器学习专家。您只需要提供您希望聊天机器人使用的数据,LlamaIndex 会处理剩下的事情。
Hugging Face 是一个提供预训练模型和工具的平台,帮助开发者更轻松地使用和部署大语言模型。
嵌入是将文本数据转换为数值向量的过程,这些向量可以被机器学习模型理解和处理。嵌入技术在大语言模型中起着关键作用,因为它允许模型在向量空间中表示和比较文本。
Google NotebookLM,上传文档与LM交互,可直接在线体验
DashVector 是阿里云推出的一个高性能向量数据库,专门用于存储和检索大规模的向量数据。它能够高效地支持嵌入向量的存储和相似度搜索,非常适合与大语言模型结合使用,实现基于本地知识库的问答系统。
安装依赖:首先需要安装 DashVector SDK 和 LangChain 相关的库。
1 | pip install dashvector langchain |
使用 DashVector SDK,你可以轻松地使用 DashVector 存储和检索向量数据。
1 | # 初始化 DashVector 客户端:创建一个 DashVector 客户端实例,用于与 DashVector 数据库进行交互。 |
开源项目 FastGpt 构建本地知识库,通过 one-api 调用非 ChatGPT 的大语言模型(为非 OpenAI 的 LLM 提供类似 ChatGPT 接口),阿里的 DashScope 有通义千问、Llmma2、通义万相、姜子牙通用大模型等 LLM 接口可供使用。
在vscode中,带_test的go源文件里的测试函数有有专门的优化,可点击”run test”,”debug test”一键测试
在settings.json可以指定go buld参数如ldfalgs,gcflags等
1 | "go.buildFlags": [ |
gopls是go官方维护的工具,提供代码提示,补全,格式化等诸多功能,之前的版本在vscode+wsl里使用,内存/cpu占
用都不小,大项目打开时容易卡顿.
在2023.9.8官方发文提到了新版本所做的优化和实现原理,更新
体验了下,确实有明显的体验提升.
使用以下命令更新
1 | go install golang.org/x/tools/gopls@latest |
目前最新版本是 golang.org/x/tools/gopls v0.13.2
减少内存占用,启动时间,官方测试了28个github上流行的项目大部分可减少60%~80%的内存占用
Across these repos, the savings average around 75%, but memory reductions are non-linear: as projects get larger, so does the relative decrease in memory usage. We’ll explain this in more detail below.
在这些存储库中,平均节省约75%,但内存减少是非线性的:随着项目变大,内存使用的相对减少也是如此
之前,go原本最小的编译单位是package,为了获取import的package信息,需要将所有import的package提前编译好
在v0.12开始通过使用package summary和file-based cache优化最小编译单元,使gopls可以重用部分已编译的package
在之前,对package代码做了变更后,gopls必须重新编译直接或间接import该package的package(增量构建系统的基本原理)
When you make a change in one package, it’s only necessary to recompile the packages that import that one, directly or indirectly. This idea is the basis of all incremental build systems since Make in the 1970s, and gopls has been using it since its inception
从v0.12开始,只要代码变更不影响import summary就不需要重新编译
在此之前,gopls无法实现在内存中做太多static anlysis(会引入大量依赖,内存占用飙升)
v0.12优化内存占用后引入了新的anlysis,实现类似go vet的静态分析
在SpringCloud应用里使用protobuf,通过Maven编译生成对应的类,结果有一个类Idea飘红,无法跳转
1 | message Position{ |
Position正常情况下,应该生成 Position 和 PositionOrBuilder 2个类,出现的问题是Position类飘红,无法跳转
安装了Idea官方插件”Protocol Buffers”,正常能从Protobuf文件中的定义跳转到生成的类上,Position只能跳转到
PositionOrBuilder上
在Protobuf文件中还定义了多个其他类,都能正常生成
发现是生成的类文件过大,修改Idea配置,解决”The file size exceeds configured limit”
问题后能正常跳转了

Idea菜单栏点击”Help”->”Edit custom properties” 添加下面的配置,修改文件大小限制
1 | # custom IntelliJ IDEA properties |
makeDir
1 | -- 传true将路径上所有子目录都会自动创建 |
maxscript 2014,2015没有提供内置函数删除目录,需要调用.net类或者外部命令删除,下面的案例使用rmDir命令删除
HiddenDOSCommand
1 | makeDir "C:\\doscmdtest\\" |
filenameFromPath
返回文件名(包含后缀)
1 | file="g:\\subdir1\\subdir2\\myImage.jpg" |
getFilenamePath
1 |
参考:
1 | -- 按钮,点击按钮弹窗展示一张图片 |
1 | # 通过 GOOS指定系统,GOARCH指定架构 |
上述命令在powershell,cmd中不可用
1 | #查看go环境变量 |
1 | $GOOS $GOARCH |
近来,serverless这个词出现次数愈加频繁,各云厂商也纷纷推出相关的产品和工具,最近也尝试在公
司项目上使用severless去解决一些问题,这里讲讲我的体验.
阿里云的severless产品,从对已有框架的支持上说,FC的体验非常好,go,java,js,python的各种框架基本都支持,也通过社区/官方提供了完善的demo和模板(serverless devs,工具, demo,模板)