1.【实战】 向量数据库选型参考
2.Skywalking8.9.1源码解析<一>-Skywalking简介及系统架构解析
3.20款VS Code实用插件推荐
4.reactadmin?
5.前10大开源开发工具
【实战】 向量数据库选型参考
在实施大型模型的码解过程中,特别是码解在应用RAG增强检索生成时,向量数据库的码解选择至关重要。本文通过实验对比了四个常见的码解向量数据库:Chroma、Faiss、码解Weaviate和Pinecore。码解vue源码解读 seg未来计划在时间和精力允许的码解情况下,追加Milvus和Qdrant的码解实验。
实验中选用的码解模型要求较小,以减少空间占用,码解便于本地调试。码解从Huggingface上选择了名为all-MiniLM-L6-v2的码解模型,其维度为。码解
HuggingFace上的码解模型all-MiniLM-L6-v2无法直接下载。可以通过以下两种方式之一下载模型:从摩搭(ModelScope)平台下载,码解或从HF-Mirror下载。
Chroma向量数据库采用SQLite作为基础,通过乘积量化技术和k-means聚类优化查询和压缩数据,以节约空间和提高查询效率。实验中,使用Python语言将文本块以Embedding向量的形式存入Chroma数据库,并基于查询文本进行相似度搜索,找到top K个相似结果。
通过实验发现,SentenceTransformer的Model基于BertModel,分词器使用BertTokenizer。检索器(Retriever)通过invoke()方法进行相关性搜索,默认使用欧拉距离计算相似度。
FAISS是Facebook AI Research的开源数据库。实验场景与Chroma相同,源码也类似。结果显示符合预期,Langchain框架的检索器Retriever对向量数据库的相似度检索默认使用欧拉距离。
Pinecone是云向量数据库,通过apiKey接入。实验中,通过两种方式使用Pinecone向量库:通过Database->Indexes提前创建向量库,或直接在源代码中创建向量库。云播系统源码
Weaviate的文档相对完善,主要用于AI应用开发平台Dify。实验中,注意Weaviate版本需高于v1.,否则无法使用grpc服务。实验场景与之前类似,通过Weaviate的GraphQL实现相关度查询。
调研并深度使用了四种常见的向量数据库:Chroma、Faiss、Pinecone、Weaviate,并对它们进行了多维度对比。
Skywalking8.9.1源码解析<一>-Skywalking简介及系统架构解析
Skywalking 8.9.1源码解析系列旨在深入探讨该版本的Skywalking-OAP及其探针Skywalking-java8.9.0。本文基于官方文档、博客和个人理解,对Skywalking进行简介和系统架构解析。
Skywalking是一款强大的分布式追踪系统,提供详尽的UI界面,可通过OpenTrace官方文档了解其Trace概念。核心功能包括性能监控和分布式追踪,以帮助开发者理解和优化应用程序的性能。
Skywalking的代码模块构建在微内核架构上,这种架构允许通过插件形式扩展核心功能,如IDEA和Eclipse的插件模式。SkyWalking Agent和OAP都采用微内核架构,利用ModuleManager管理组件和ModuleProvider,实现模块间的高效通信和功能扩展。
在通信方面,Skywalking探针和服务器主要通过Grpc进行数据交换,考虑到性能和数据丢失风险,有人提议用Kafka替代,但官方仅支持Grpc和SSL。Skywalking UI与后端的交互采用GraphQL,尽管restful更为常见,但GraphQL提供了更灵活的数据获取方式。
存储方面,Skywalking支持模块化存储选择,lstm的python源码官方推荐内存数据库Es,但在线上环境中可能需要特定数据库支持。本地开发环境通常使用Mysql,生产环境将根据需求进行选择。数据库表结构会在后续文章中详细讨论。
数据流方面,Skywalking的数据经过OAL处理后入库,OAL层的具体作用官方未明示,但可能是为了进一步处理和优化数据。本文从整体架构深入到细节,助力需求文档和开发文档的完善。
款VS Code实用插件推荐
VS Code是一个轻量级但功能强大的源代码编辑器,通过安装插件可以支持多种语言的环境开发,使其成为开发语言工具中的佼佼者。以下是一些我整理的实用VS Code插件,希望能够提升大家的日常开发和工作效率:
1. <a href="marketplace.visualstudio.com...中文(简体)语言包
2. C# Dev Kit for Visual Studio Code
3. <a href="marketplace.visualstudio.com...vscode-icons
4. <a href="marketplace.visualstudio.com...Tabnine AI Autocomplete
5. <a href="marketplace.visualstudio.com...Copilot AI辅助编程工具
6. <a href="marketplace.visualstudio.com...Auto Close Tag
7. <a href="marketplace.visualstudio.com...Better Comments
8. <a href="marketplace.visualstudio.com...ESLint
9. <a href="marketplace.visualstudio.com...GitLens
. <a href="marketplace.visualstudio.com...Git History
. Drawio Preview
. <a href="marketplace.visualstudio.com...Path Intellisense
. Vetur
. vscode-element-helper
. Vue VSCode Snippets
. Angular Snippets (Version 9)
. <a href="marketplace.visualstudio.com...Code Runner
. Icon Fonts
. Gitlink
. GraphQL
请根据您的具体需求安装和使用这些插件,希望它们能帮助您提高开发效率。如有更好的插件推荐,欢迎在文末留言。
reactadmin?
开箱即用的React前端框架——ReactAdmin
ReactAdmin是一个Github上免费开源的前端框架(不是组件库,也不是模板,它是一个框架),采用es6、React和MaterialDesign构建基于Rest/GraphQlAPI的Web应用程序。在React上star数超过8k。
ReactAdmin不是个UI组件库,它是一个前端框架,因此你基本上基本上只要按照官网的文档进行一些配置等然后在其基础上开发自己的应用程序即可,可谓开箱即用,意识就是都给你集成好了。
你可以直接使用以下命令进行安装(这是安装react-admin及所有的依赖)
下面我们看一下官网提供的一个最简单的示例,你可以在它的主仓库中获取
我们进入到simple中,大致看一下代码和目录结构
我们安装一些依赖然后启动
成功后打开浏览器,这是使用react-admin最简单的一个例子
一图了解
由于ReactAdmin是一个非常复杂的框架,你可以参考提供的文档,我这里就不详细介绍了,感兴趣的移动互联物流源码可以直接看文档,文档是英文的,所有的说明都在文档中。
ReactAdmin它是一个集合,它将一些前端开发所需要的东西都集成了进来,然后做好,我们直接使用即可,不仅仅适合个人学习,也适合通过它来构建企业级的应用。我们不仅仅是拿过来直接用,我们可看一看别人是怎么实现这样的一个框架的,从源码去学习会更快的提升自己的水平,希望对你有所帮助!
react-admin一款基于reactjs后台解决方案
使用ES6,React和MaterialDesign在REST/GraphQLAPI之上构建在浏览器中运行的管理应用程序的一款前端框架。Githubstar8.7K+,MIT协议。由marmelab开源和维护。marmelab还有一款非常热门的angularjs后台解决方案ng-admin基于angularjs感兴趣的同学可以去了解下。react-admin官网示例截图如下:
该Resource组件是一个配置组件,它允许以限定子组件对于每个管理视图的:list,edit,和create。这些组件使用MaterialUI和react-admin中的自定义组件:
antdesign表格标题下面还有子标题一、如图展示表格如何展示下方嵌套的deptName
在这里插入描述
官网在这里插入描述
二、解决方案
Columnalign="center"title="部门"dataIndex={ ["dept","deptName"]}/
1
1
技术交流分享/面试总结
微信名片
打开CSDNAPP,看更多技术内容
最新发布保姆级教程:AntDesignVue中a-table嵌套子表格
AntDesignVue中a-table嵌套子表格及只打开一个嵌套表格的方法
继续访问
Antd(Ant-design),嵌套子表格(expandedRowRender)的异步获取数据
使用阿里的ant-design开源框架,要在表格里面嵌套子表格,需要在用户点击父表格的一行数据后,获取该行的key,然后去异步请求后台的数据用来填充子表格的内容。如果这样写(省略无关代码):expandedRowRender=(record)={ dispatch({ type:'flow/getPlanList',payload:{ contractId:record.contract_id,//该参数...
继续访问
react-antdesigntable表格多级可编辑表格
antd-react3X版本多级可编辑table
继续访问
react.jsant-design中table树结构三级嵌套时逻辑问题
实现三级嵌套树结构时,勾选三级里的子节点时候父节点也会自动勾选,当子节点大于一项时候取消勾选某一子结构时父节点不变;当子节点只有一项时父节点也会自动取消勾选importStandardTablePagefrom'@/components/StandardTablePage';//用户选中某一行userSelect(record,selected,selectedRows,nativeEvent){ let{ selectedRowKeys}=this.st.
继续访问
Reactantd的table表格之嵌套表格
Reactantd的table表格之嵌套表格最近做了几个pc端的后台管理需求,涉及了table中的嵌套表格,嵌套的子表格大体分为两种效果:效果1-----点击展开新的子表格,旧的软件源码怎么破解子表格关闭效果2-----可同时展开多个子表格效果1:嵌套表格,实现点击展开按钮,展开子表格请求接口数据,点击新的子表格收起原来的子表格效果//设置一个State用来储存展开的行,控制属性const[expandedRowKeys,setExpandedRowKeys]=useStateanygt
继续访问
vue嵌套表格组件_支持嵌套对象、多级数组的Vue动态多级表单组件——vue-dynamic-form-component...
方便不想看完全篇文章的童鞋,简单总结一下,这是篇软广,主要是推广自己在业务中沉淀的一个开源组件vue-dynamic-form-component。基于element-ui实现的vue组件,只需编写类似async-validator的规则,自动生成对应的表单,支持常见输入类型的同时,支持嵌套对象、hashmap、多维数组等复杂类型。有需要的童鞋欢迎使用和贡献代码,顺便给个star(我...
继续访问
antdtable嵌套子表格后端动态获取数据rudex写法示例
有一个需求是可以使主表格里每一栏数据展开,在子table里显示与其相关的子数据项,展开的时候去向后台请求数据显示。用的组件库是Antd。首先我们看Antd官方文档的Table有嵌套子表格的功能,可见我们需要使用expandedRowRender参数,但是尝试在expandedRowRender函数中进行请求,会发现发出了连续的请求,所以我们把请求写在onExpand中,只在点击展开图表的时候发出一次。之后我们写onExpand函数,注意这里的参数要写上expanded,代表是展开还是合并,我之前
继续访问
React-Antd-表格-嵌套子表格
文档地址:链接.import{ Table,Badge,Menu,Dropdown,Space}from"antd";import{ DownOutlined}from"@ant-design/icons";import{ useEffect,useState}from"react";exportdefaultfunctionApp(){ constcolumns=[//定义外层表格头数据{ title:"姓名",dataInde
继续访问
ReactantdTable实现单元格点击表头斜线分组等功能
reactantd单元格添加点击事件自定义单元格
继续访问
进阶Ant-Design-Vue你知道table多级表头嵌套展开写法吗?
前言:在Ant-Design-Vue的前端项目中,我们会经常处理表格,表单这些组件元素,熟练运用并知道它们在使用过程中的联系与区别,这是一个前端必不可少的哟。本文我旨在解决两个问题:(1)如何便于更好的嵌套多级表头(2)如何通过a-checkbox控制全选,单选显示a-table对应的列元素类似于ElementUI,Ant-Design-vue中有很多相似点,但又不完全苟同,有很多自己独有的写法和思想。相信很多人都是先入手ElementUI,再入手Ant,这其实是对开发者比较友好的方式,如果
继续访问
前端面试题(react)
性能优化分为2个方面setState是修改其中的部分状态,相当于Object.assign,只是覆盖,不会减少原来的状态;replaceState是完全替换原来的状态,相当于赋值,将原来的state替换为另一个对象,如果新状态属性减少,那么state中就没有这个状态了接收旧的state和action,返回新的state受控组件就是可以被react状态控制的组件在react中,Inputtextarea等组件默认是非受控组件(输入框内部的值是用户控制,和React无关)
继续访问
Antd表格设置表头分组实现可编辑行
主要通过onCell方法修改children中cloumn的属性。
继续访问
antd能自适应吗_admin-antd-react是一个后台前端解决方案,它基于React、AntDesign和UmiJs实现。...
admin-antd-react是一个后台前端解决方案,它基于React、AntDesign和UmiJs实现。--::?阅读次#介绍[admin-antd-react]()是一个后台前端解决方案,它基于[React](...
继续访问
react-antd-Table相似表格不同字段处理
1、当两个表格字段相似时,但有一两个字段不同,我们可以将不同的字段单独以对象的形式抽出,根据情况push进去即可。2、代码参考constchange={ title:'操作',dataIndex:'operate',key:'operate',width:'%',align:'center',render:(text,record)={
继续访问
React中控制AntDesignTable列的显示与隐藏
React中控制AntDesignTable列的显示与隐藏
继续访问
热门推荐使用antd中Table组件某一列有多个变量值需要写入
当某一列需要有多个变量值写入时,我们就不可以再用dataIndex来定义一个ID,具体解决方案将在文中给出。
继续访问
reactant-designtable显示数据以及上传数据显示到另一列中
需求是:用table展示数据,并在每一行的最后一列中给一个上传附件的按钮,可上传多个附件,上传之后在另一列去显示数据,可以删除附件因为有别的组件用到columns,他不需要上传附件功能,我就把columns的公共部分提出去了,在这个组件需要的时候在push到column中。columns如下:/***处理上传附件列*/handleColumn=()={ letcArr=this.state.columns;
继续访问
antd表单一个label下多个内容
1.如何实现一个label旁并排多项内容比如这样,在other的label下,既有输入文本域,又有toggle开关。同时两者有序地并排在右侧,同一行。方法是再用一层Form.Item分别包裹右侧内容,并且设置noStyle属性示例代码:Form.Itemlabel="DateofBirth:"Form.Itemname="birthDate"noStyle
继续访问
React针对antDesignselect组件进行二次封装
React针对antDesign库select组件进行二次封装由于业务需要对select进行样式上的修改,部分select还需要使用原样式。这种情况可以通过两种方式来实现:1通过className进行样式覆盖2通过二次封装组件,相对于仅修改css样式来说更加的灵活本次介绍第二种方式对组件进行二次封装/**@Date/5/8*@Authorzuolinya*@Descriptionantdselect组件二次封装*1设置为圆角*/import
继续访问
React基于AntdDesign的RadioGroup按钮组控件封装
开源Vue后端UI开箱即用解决方案——vuestic-admin这是一个Vue的后端开箱即用UI项目框架,和之前的ReactAdmin类似,它是一个框架,也就意味着它帮你完成了很多公用的部分,你只需要在其基础上进行自己的项目扩展即可。大体上这是由Vue和bootstrap4构建的,其中还集成了很多其他的东西。
如果你使用yarn你也可以使用它安装
在安装好vuestic后,你就可以使用它进行项目创建了
创建好后大致看一下目录结构(可能不清晰,你可以直接搭建体验)
成功后打开localhost:
如果你想详细的学习,你可以查看官网文档
浏览器兼容性,很遗憾只支持到IE+和主流的Chrome、FireFox、Safari、Edge等
目前有很多开箱即用的解决方案,还有一些仅仅是UI模板,每个解决方案都有各自的优势,我们尽可能的减少不必要的开发时间浪费,在通用的基础上在扩展,最主要的还是学习看源码,希望对大家有所帮助,谢谢!
react中实现登录鉴权vue中会使用导航守卫判断token,
react中使用redirect方式
使用高阶组件定义PrivateRoute导出
在router中用
PrivateRoute?path="/admin/roles"?exact?component={ Roles}/PrivateRoute的方式判断需要token的路由
import?React,?{ ?Component?}?from?'react'
import?{ Redirect,?Route}?from?'react-router-dom'
function?PrivateRoute({ ?component:Children,?...rest?})?{
return?(
Route{ ...rest}
render={ ()?={
let?token?=?localStorage.getItem('token')if(token){
return?Children/
}else{
returnRedirect
to={
'/login'
}/
}
}
}
/);
}export?default?PrivateRoute前大开源开发工具
Visual Studio Code 是一款强大的开源源代码编辑器,适用于 Windows、macOS 和 Linux。它内置了对多种语言,如 JavaScript、TypeScript、Node.js 的支持,并提供了丰富的扩展生态系统,适用于其他语言,如 C++、C#、Java、Python、PHP、Go。其轻量级的设计和功能的丰富性使其在我们的前名中位居榜首。由于其在功能、用户体验和扩展方面的卓越表现,以及团队定期发布的更新,VS Code 成为了最佳编辑器之一,值得一试。
Budibase 是一款开源低代码平台,为构建内部工具和自定义业务应用程序提供了一切所需,如仪表板、管理面板、审批应用程序、客户门户等。它允许用户在几分钟内将数据和流程转变为强大的内部工具。Budibase 在竞争中脱颖而出的原因包括用户可以在自己的基础设施上自行托管应用程序,创建内部和外部工具,以及自动化任务,如电子邮件通知、触发 webhook、发送报告等。此外,Budibase 导出的单页应用程序提供了更好的用户体验。
Vercel 是一款面向前端开发人员的部署和协作平台,为他们提供了构建高性能网站和应用程序的综合工具。Vercel 使开发人员能够托管可即时部署和自动扩展的网站和 Web 服务,无需任何配置。其愉快的用户体验、高性能和 UI 设计是 Vercel 在前名中的原因之一。此外,它在 Github 上拥有最大和发展最快的社区之一,活跃和热情的论坛为用户提供了支持。
Oh My Zsh 是一个开源的、社区驱动的框架,用于管理 Zsh 配置。它捆绑了超过 个插件,简化了软件开发人员的工作。Oh My Zsh 为命令行使用人员提供了更丰富的体验,并定期更新和发布开源开发工具的新功能。用户可以访问社区贡献的主题,以获取最新功能和改进。
GitLab 是一个集成的软件开发平台,旨在简化 DevOps 生命周期。它提供了从版本控制到服务台、设计管理、机密管理和时间跟踪的一系列工具。GitLab 的强大之处在于它在包管理方面的功能,允许团队轻松打包依赖项、管理容器和构建工件。此外,GitLab 的私有、容器和包注册表功能开箱即用,与 GitLab 的源代码管理和 CI/CD 管道无缝协作。这使得 GitLab 成为开源开发者世界中的重要平台。
Supabase 是一个开源的 Firebase 替代品,为开发者提供了一个“一套开源工具,组合在一起以构建无缝的开发人员体验”。它包含许多功能,如身份验证、存储和即将发布的功能。Supabase 的闭源竞争对手 Firebase 的 API 调用费用使许多开发者转向 Supabase,因为它提供了更经济的解决方案。
PostHog 是一款企业级产品分析平台,提供了不同的工具,旨在帮助企业更好地了解产品成功的关键因素。PostHog 提供了会话记录、热图和功能标志等功能,这些功能在产品分析领域是独一无二的。PostHog 的社区和团队反应迅速,乐于助人,为用户提供支持和帮助。
Snyk 是一款开发者优先的安全平台,旨在安全地构建云原生应用程序,并鼓励开发人员在开发过程中修复开源漏洞。Snyk 的优势在于其自动化的安全漏洞修复功能和对软件组合分析的简化,使开发过程更加高效和安全。
Prisma 是一个开源的下一代 ORM,提供了一个全面的解决方案,包括 Prisma Client、Prisma Migrate 和 Prisma Studio。Prisma 提供了一个将数据库转化为 REST/GraphQL API 的 ORM,为前端和后端开发提供了类型安全的 API。它采用的 SDL 优先方法使构建过程更加直观和高效。
Storybook 是一款 UI 开发工具,通过隔离组件简化了开发过程。它允许开发人员专注于单个组件的开发,而无需启动复杂的开发堆栈、输入特定数据或在应用程序中导航。Storybook 与各种流行的前端框架(如 React、Vue 和 Svelte)集成,并提供了丰富的社区支持。它还支持组件的可视化展示,使开发人员更深入地了解可用组件,减少了重复工作。