
LM Studio + open-webui 快速本地部署大语言模型
一、前言 自 OpenAi 发布 ChatGPT 对话性大语言模型,AI 这两年发展迎来爆发,国内外也衍生了大量的语言模型开放给公众使用。为了可以让更多人接触到AI,让本地化部署更加轻便快捷,于是就有了Ollama、LM Studio等可以在本地部署模型的工具。 相比之下,ollama 需要通过命令进行安装,下载模型,以及对话, 如果需要 web 界面,可搭配 open-webui 进行配...
一、前言 自 OpenAi 发布 ChatGPT 对话性大语言模型,AI 这两年发展迎来爆发,国内外也衍生了大量的语言模型开放给公众使用。为了可以让更多人接触到AI,让本地化部署更加轻便快捷,于是就有了Ollama、LM Studio等可以在本地部署模型的工具。 相比之下,ollama 需要通过命令进行安装,下载模型,以及对话, 如果需要 web 界面,可搭配 open-webui 进行配...
问题 在使用 Jetpack Compose 延迟列表时遇到一个坑,简单记录一下。直接上代码: 这个代码看起来也没有什么问题,滑动正常,点击滑动到顶部也正常。 但是极端操作:在一边滑动列表一边点击按钮,就出问题了。这样再点击按钮,就不生效了。从日志来看,点击时协程发射值没有问题,但是 collect 不执行了。 如果直接在点击事件中启动协程,执行操作,就不会有问题。 But...
问题:Jetpack Compose 中使用 Material 包中的控件,点击默认会有水波纹效果。如何去除这个点击水波纹效果呢? 看下 Modifier.clickable 的签名: fun Modifier.clickable( interactionSource: MutableInteractionSource, indication: Indication?, ...
看问题本质,设置全面屏,是系统窗口的行为,与 View 和 Compose 有什么关系呢? 所以,原理和传统 View 视图是一样的,甚至 Api 都是一模一样的,不熟悉的可以看我之前的文章。传送门: Android 全面屏体验 那为什么还要写这篇文章呢?主要是在 Compose 中写法上的一些区别,直接上代码: 找到主题设置的代码,默认生成的主题如下: @Composable fu...
一、引出问题 Android 开发中,很常见的一个场景,通过 WindowManager.addView() 添加一个 View 到屏幕上。Android 最新的视图框架 Jetpack Compose,如何应用进来。这个被添加的 View 如何使用 Compose 编写视图呢? 二、探究问题 有的朋友肯定会马上想到使用 ComposeView 作为桥梁。没错,WindowManager....
一、Composable 组件渲染流程 传统 View 体系中,视图的渲染流程可以分为三个步骤: 测量、布局、绘制。在 Compose 中,组件的渲染流程也可划分为三步:组合、布局、绘制。 组合:执行Composable函数体,生成并维护LayoutNode视图树。 布局:对于视图树中的每个LayoutNode进行宽高尺寸测量并完成位置摆放。 绘制:将所有LayoutNode...
前言 所谓嵌套滚动,就是两个组件之间出现滚动事件冲突了,要给与特定的处理逻辑。在传统 View 系统中称之为滑动冲突,一般有两种解决方案,外部拦截法和内部拦截法。在 Jetpack Compose 中,提供了 Modifier.nestedScroll 修饰符用来处理嵌套滚动的场景。 一、Jetpack Compose 中处理嵌套滚动的思想 在介绍 Modifier.nestedScrol...
本文介绍 Jetpack Compose 中的手势处理。 官方文档的对 Compose 中的交互做了分类,比如指针输入、键盘输入等。本文主要是介绍指针输入,类比传统 View 体系中的事件分发。 说明:在 Compose 中,手势处理是通过 Modifier 实现的。这里,有人可能要反驳,Button 这个可组合项,就是专门用来响应点击事件的,莫慌,接着往下看。 一、点按手势 1.1 ...
本文介绍 Jetpack Compose 动画。 官方文档 关于动画这块,第一次看官网,觉得内容很杂,很难把握住整个框架结构,很难去对动画进行分类。参考了很多文献资料,大多数都是从高级别 API 开始讲解,包括官网也是如此。我发现这样不太容易理解,因为高级别 API 中可能会涉及到低级别 API 中的一些方法,术语等。所以本文从低级别 API 讲起。 一、低级别动画 API 1.1 ani...
一、 Composable 的生命周期 Composable 组件都是函数,Composable 函数执行会得到一棵视图树,每一个 Composable 组件对应视图树上的一个节点。Composable 的生命周期定义如下: onActive(添加到视图树) Composable 首次被执行,即在视图树上创建对应的节点。 onUpdate(重组) Composable 跟随重组不...