- 博客(116)
- 资源 (29)
- 收藏
- 关注
原创 Dify、Coze、RAGFlow,选哪个做企业AI开发?
Dify、Coze、RAGFlow三大RAG平台的技术架构、开发体验、部署自由度和扩展性,为开发者提供选型建议。Dify开源灵活,适合定制化AI助手开发;Coze界面友好但SaaS化,适合快速验证概念;RAGFlow专注知识系统,文档处理能力强。选型需考虑项目类型:ToB选Dify,ToC短期试点用Coze,知识库系统首选RAGFlow。核心原则是选择可控、可扩展且不被平台锁死的解决方案。(149字)
2025-09-18 15:44:09
1181
原创 LangChain完全指南:从入门到精通,打造AI应用开发新范式
LangChain提供了丰富的API和工具集,初学者也能迅速上手,构建出功能强大的应用程序。无论是在提升现有项目的智能化水平,还是在探索AI创新应用方面,LangChain都展现出了其不可替代的重要性。
2025-05-30 17:41:42
1400
转载 Android 从入门到资深学习路线
前言看到一篇文章中提到“最近几年国内的初级Android程序员已经很多了,但是中高级的android技术人才仍然稀缺“,这的确不假,从我在百度所进行的一些面试来看,找一个适合的高级Android工程师的确不容易,一般需要进行大量的面试才能挑选出一个比较满意的。为什么中高级Android程序员不多呢?这是一个问题,我不好回答,但是我想写一篇文章来描述下Android的学习路线,期望可以帮助更多的Android程序员提升自己。由于我也是从一个菜鸟过来的,所以我会结合我的个人经历以及我对Android学习过程
2017-07-03 14:32:44
914
原创 android吹一吹功能的实现,利用麦克风去监听频率的变化。
android吹一吹功能的实现,主要是通过监听麦克风频率变化来实现的,源码下载地址: 主要是通过一个线程去监听麦克风的变化来确定吹一吹的功能接下来看下主要代码:RecordThread.javapackage com.li;import android.media.AudioFormat;import android.media.AudioRecord;import andr
2013-10-23 16:02:27
4890
原创 LangChain 入门到精通企业项目实践之 LangChain 聊天模型
LangChain 聊天模型 集成了提示工程、工具调用、缓存、流式输出、结构化输出等多种能力,是构建现代化 AI 服务的关键组件。掌握这些技能,能快速在企业级项目中构建智能客服、自动化分析、AI助手、RAG实时问答系统等高端能力。
2025-09-19 18:46:50
572
原创 Dify四层架构揭秘:原来LLM应用开发可以这么高效!
Dify四层架构重新定义高效AI开发:1)应用交互层基于Next.js+React提供可视化工作流设计;2)服务编排层通过Flask+Celery实现异步任务处理;3)模型运算层抽象多模型接口并集成RAG技术;4)数据基础设施层管理结构化数据与向量存储。该架构支持快速部署、模块化扩展,前端后台解耦,模型灵活切换,适合企业级AI应用开发。相比LangChain更注重整体平台集成,两者可互补使用。
2025-09-19 09:01:19
1160
原创 LangChain 是如何把 AI 工具变成智能系统的?附核心组件全解析
LangChain是构建结构化AI系统的开发框架,其核心价值在于将模型、数据、流程等组件模块化组合。五大核心组件包括:1)支持多模型的统一接口;2)可变量注入的Prompt模板;3)封装任务逻辑的Chain;4)自主决策的Agent;5)管理对话上下文的Memory。该框架通过组件化设计提升开发效率、调试支持和系统扩展性,适用于智能客服、问答系统等企业级AI应用。开发者可通过LangChain构建可测试、可维护的AI流水线,并利用其生态工具实现API服务化、性能监控等功能。
2025-09-18 16:12:44
717
原创 Java设计模式之责任链模式
责任链模式模式介绍模式的定义一个请求沿着一条“链”传递,直到该“链”上的某个处理者处理它为止。模式的使用场景一个请求可以被多个处理者处理或处理者未明确指定时。
2017-02-15 16:14:07
409
原创 Java设计模式之原型模式
原型模式模式介绍模式的定义用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。模式的使用场景类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗;通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式;一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。
2017-02-15 16:13:28
448
原创 Java设计模式之外观模式
外观模式定义为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式的目的不是给子系统添加新的功能接口,而是为了让外部减少与子系统内多个模块的交互,松散耦合,从而让外部能够更简单的使用子系统。优缺点优点 松散耦合简单易用更好的划分访问的层次缺点 过多的或者是不太合理的Facade也容易让人迷惑。到底是调用Facade好还是直
2017-02-15 16:13:13
350
原创 Java设计模式之适配器模式
适配器模式定义: 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。功能: 进行转换匹配,目的是复用已有的功能,而不是来实现新的接口。在适配器里实现功能,这种适配器称为智能适配器。优点:更好的复用性更好的扩展性缺点:过多的使用适配器,会让系统非常零乱,不容易整体进行把握。本质:转换匹配,复用功能。何时选用适配器模式:
2017-02-15 16:12:59
336
原创 Java设计模式之简单工厂
简单工厂接口接口是一种特殊的抽象类,跟一般的抽象类相比,接口里的所有方法都是抽象方法,接口里的所有属性都是常量。也就是说接口里面只有方法定义没有任何方法实现。接口的思想是”封装隔离”简单工厂示例代码: https://github.com/GeniusVJR/DesignMode_Java/tree/master/SimpleFactory客户端在调用的时候,不但知道了接口,同时还知道了具体的实现
2017-02-15 16:12:45
337
原创 Java设计模式之观察者模式
观察者模式首先在Android中,我们往ListView添加数据后,都会调用Adapter的notifyDataChanged()方法,其中使用了观察者模式。当ListView的数据发生变化时,调用Adapter的notifyDataSetChanged函数,这个函数又会调用DataSetObservable的notifyChanged函数,这个函数会调用所有观察者(AdapterDataSetOb
2017-02-15 16:12:22
310
原创 Java设计模式之代理模式
代理模式模式介绍代理模式是对象的结构模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。模式的使用场景就是一个人或者机构代表另一个人或者机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。角色介绍抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。目标
2017-02-15 16:11:48
278
原创 常见的面向对象设计原则
常见的面向对象设计原则单一职责原则 SRP 一个类应该仅有一个引起它变化的原因。开放关闭原则 OCP 一个类应该对外扩展开放,对修改关闭。里氏替换原则 LSP 子类型能够替换掉它们的父类型。依赖倒置原则 DIP 要依赖于抽象,不要依赖于具体类,要做到依赖倒置,应该做到: 高层模块不应该依赖底层模块,二者都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。接口隔离
2017-02-15 16:11:04
269
原创 Java设计模式之策略模式
策略模式模式的定义策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。模式的使用场景针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。需要安全的封装多种同一类型的操作时。出现同一抽象多个子类,而又需要使用if-else 或者 switch-
2017-02-15 16:10:41
305
原创 Java设计模式之单例模式
单例模式定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 Singleton:负责创建Singleton类自己的唯一实例,并提供一个getInstance的方法,让外部来访问这个类的唯一实例。饿汉式: private static Singleton uniqueInstance = new Singleton(); 懒汉式 private static Sin
2017-02-15 16:09:37
338
原创 Java设计模式之Builder模式
七大设计原则:1、单一职责原则【SINGLE RESPONSIBILITY PRINCIPLE】:一个类负责一项职责.2、里氏替换原则【LISKOV SUBSTITUTION PRINCIPLE】:继承与派生的规则.3、依赖倒置原则【DEPENDENCE INVERSION PRINCIPLE】:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程.4、接口隔离原则【INTERFACE SEGREGATION PRINCIPLE】
2017-02-15 15:59:41
457
原创 Eclipse如何修改包名
Eclipse开发launcher时常会遇到改名问题,改动错误或更新不完整,都会引起大量的提示错误,所以,改名前一定要备份一下原工程以备回退。一、修改源码包名1、选择launcher包2、按下F2或鼠标右键选择重命名输入新名称,下面四个CheckBox全部选中。3、点击Preview在弹出界面中,点击continue继续修改包,进入下一步确认修改界面。4、点击O
2015-05-04 11:35:26
51159
7
原创 Xcode 6制作动态及静态通用Framework(解决不支持 armv7s arm64 armv7)
有没有写SDK或者要将一些常用的工具类做成Framework的经历? 你或许自己写脚本完成了这项工作,相信也有很多的人使用 iOS-Universal-Framework ,随着Xcode 6的发布,相信小伙伴们已经都知道了,Xcode 6支持做Framework了. 同时iOS-Universal-Framework开发者也宣布不在继续维持此项目的开发,建议开发者使用Xcode 6制作,目前网上
2015-02-05 17:37:18
5206
转载 ios 制作自已的framework
ios中我们写的代码有时不愿意让别人看到,可能对它进行封装,生成一个静态库如典型的.a,还有一种就是和苹果自带的库一样的后缀名为.framework的库,个人推荐使用.framework,因为.a不仅要装其添加进去,还要将对应的头文件添加到项目中。1.新建一个静态库工程。file--new--project,弹出框中选择Ios--framework&library中的cocoa touch s
2015-01-29 14:18:11
875
原创 CocoaPods pod install/pod update更新慢的问题
使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:pod install --verbose --no-repo-updatepod update --v
2015-01-05 16:36:19
1673
原创 在ios中的Document中创建多级文件夹以及文件
- (NSString *)dataPath:(NSString *)file{ NSString *path = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"badge"]; BOOL bo = [[NSFileMan
2014-07-02 22:31:40
2339
原创 IOS沙盒机制(SandBox)
分别是.app文件,这个就是可运行的应用文件,Documents,苹 果建议将程序中创建的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录;Library,存储程序的默认设置或其它 状态信息;Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除;tmp,创建和存放临时文件的地 方。下面通过代码来获取这些目录
2014-07-02 14:46:54
703
原创 Android App自动化之使用Ant编译项目多渠道打包
Ant编译项目多渠道打包,随着工程越来越复杂,项目越来越多,以及平台的迁移(我最近就迁了2回),还有各大市场的发布,自动化编译android项目的需求越来越强烈,后面如果考虑做持续集成的话,会更加强烈。 经过不断的尝试,在ubuntu环境下,以花界为例,我将一步一步演示如何使用命令行,使用ant编译android项目,打包多渠道APK。
2014-03-19 14:33:51
1222
转载 Android NDK支持STL的一些注意事项
Android NDK从r5b版本开始有官方支持的STL了,有一个crystax版本早已经支持。官方的支持有两个版本一个是gnu的,一个是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一个选项,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四种: system --> 系统默认的最小支
2014-02-18 11:04:51
817
转载 Android NDK学习(8)Android Makefile探索2 .
前面写的makefile比较简单,主要是要测试的代码结构比较简单。这次,源文件、头文件不在同一个文件夹下了,那又该如何写makefile呢?首先,我的代码目录结构如下:1、在jni主目录首先有一个MK文件,内容如下:MY_LOCAL_PATH :=$(call my-dir)LOCAL_PATH :=$(MY_LOCAL_PATH)i
2014-02-18 11:04:10
684
转载 Android NDK学习(7)NDK测试时遇到的问题:C与C++互相调用
贴代码:test.hint adds(int a,int b);int subs(int a,int b);test.c#include "test.h"int adds(int a,int b){ return (a-b);}int subs(int a,int b){ return (a+b);}com_ycan_ycantestlib.h
2014-02-18 11:02:52
626
转载 Android NDK学习(6)在Android项目中调用已有.so库
注意该.so库指的是android平台的,非一般linux、unix平台;1、现有库libcom_ycan_testLib.so2、新建android项目TestLib23、添加新类:类名:testLib包路径:参考现有库名,应为com.ycan4、在新类中声明库的本地方法,如下:package com.ycan;public class
2014-02-18 11:00:39
757
转载 Android NDK学习(5)调用.so文件
直接贴代码了:package com.YCan.testjni;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import
2014-02-18 10:58:05
707
转载 Android NDK学习(4)使用cygwin生成.so库文件
简单的示例:makefile文件:LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=test-jniLOCAL_SRC_FILES := test-jni.cinclude $(BUILD_SHARED_LIBRARY)如果有多个文件,可能有所不同吧,尚未尝试。
2014-02-18 10:56:15
920
转载 Android NDK学习(3)使用Javah命令生成JNI头文件
第一步:在Eclipse中创建android项目,并声明Native接口:public native int add (int a, int b);public native int sub (int a, int b);编译、运行;这样在bin目录下就会生成类文件;第二步:打开命令行cmd,到达bin目录:F:\fww\workspac
2014-02-18 10:55:14
834
转载 Android NDK学习(2)Windows下NDK开发环境配置
一、配置好Android开发环境 此处不再赘述。 2013年6月7日: 现在android SDK的版本已经到了4.2了,几乎不用配置,下载下来解压,SDK跟Android开发专用Eclipse都有了。喜欢。二、下载安装安卓NDK 下载最新版,解压即可。 2013年6月7日: 目前版本已经到了r8e.三、下
2014-02-18 10:53:40
778
转载 Android NDK学习(1) 简介
一、What is the NDK?The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.Android applications run in the Dalvik virtual machine.
2014-02-18 10:48:41
716
原创 Android 实现圆形转盘菜单(CirCleMenu)
前段时间有个朋友问我圆形菜单的实现,刚开始自己也到网上找了很多相关的资料,还是觉得这个实现还不错,一起分享给大家源码地址:http://download.youkuaiyun.com/detail/hcb1230/6775905以下是基本的实现:1.CircleLayout.javapackage com.szugyi.circlemenu.view;/* * Cop
2013-12-27 10:46:28
9051
1
原创 Android的TextView与Html相结合的用法
Android中的TextView,本身就支持部分的Html格式标签。这其中包括常用的字体大小颜色设置,文本链接等。使用起来也比较方便,只需要使用Html类转换一下即可。
2013-12-12 10:00:22
1333
转载 图片处理系列三Android多点触控对图片自由缩放和移动
在上一篇文章中我带着大家一起实现了Android瀑布流照片墙的效果,虽然这种效果很炫很酷,但其实还只能算是一个半成品,因为照片墙中所有的图片都是只能看不能点的。因此本篇文章中,我们就来对这一功能进行完善,加入点击图片就能浏览大图的功能,并且在浏览大图的时候还可以通过多点触控的方式对图片进行缩放。效果如下:下载地址:http://download.csdn.n
2013-11-26 15:20:45
1393
转载 图片处理系列二Android瀑布流照片墙实现(含源码)
传统界面的布局方式总是行列分明、坐落有序的,这种布局已是司空见惯,在不知不觉中大家都已经对它产生了审美疲劳。这个时候瀑布流布局的出现,就给人带来了耳目一新的感觉,这种布局虽然看上去貌似毫无规律,但是却有一种说不上来的美感,以至于涌现出了大批的网站和应用纷纷使用这种新颖的布局来设计界面。记得我在之前已经写过一篇关于如何在Android上实现照片墙功能的文章了,但那个时候是使用的GridVie
2013-11-26 15:14:31
2664
实现FaceBook左右滑动菜单,类似朋友网效果
2012-11-26
android实现歌词同步和下载功能
2013-06-20
图片处理系列二Android瀑布流照片墙实现(含源码)
2013-11-26
Android MediaPlayer之视频预加载(优化)
2013-11-22
图片处理系列一Android照片墙应用实现(绝对不崩溃)
2013-11-26
Android MediaPlayer与Http Proxy结合之提高篇
2013-11-22
图片处理系列三Android多点触控对图片自由缩放和移动
2013-11-26
android ScrollVIew中控件滑动顶端固定
2013-11-22
Android AIDL 实现应用间数据交换(包括Parcelable数据)
2013-10-23
Android MediaPlayer与Http Proxy结合之基础篇
2013-11-22
android声波通信
2013-10-23
Android MediaPlayer之Media Proxy
2013-11-22
GallaryBrowser
2012-09-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅