riceball 最近的时间轴更新
riceball

riceball

V2EX 第 16487 号会员,加入于 2012-02-08 13:42:19 +08:00
riceball 最近回复了
自架 LLM

* https://github.com/facebookresearch/fairseq/tree/main/examples/mms 可识别 4000 多种语言、错误率仅为 OpenAI 产品的一半
* https://github.com/google-research/multilingual-t5
如果和 aurora4x 非常类似,那么可以考虑直接在现有开源项目上 fork 修改: https://github.com/Pulsar4xDevs/Pulsar4x
是 web 端么? 如果只是浏览器访问,那么必然就 PWA 了,关于 PWA 可以使用资源的预缓存机制,google 提供的 Workbox 工具箱简化使用.

如果是跨平台的 JS 应用,那么要看你用的是啥了,react native? cordova? capacitor? flutter? 基本上都有热更新, 微软贡献的开源项目 code-push 不错

1. https://github.com/microsoft/react-native-code-push
2. https://github.com/microsoft/cordova-plugin-code-push
3. https://github.com/mapiacompany/capacitor-codepush
289 天前
回复了 xiangpeng 创建的主题 Markdown 求推荐可以批量导入 Markdown 文件的知识库
支持 Markdown 格式的知识库一大堆, 各有用途, 不说清楚怎么用, 给谁用. 没法推荐. Markdown 格式,后端最好不要数据库, 直接 git 存储+静态站点生成, 如果是开发人员编辑使用:

1. VSCode 编辑器的使用者 [vscode-front-matter]( https://github.com/estruyf/vscode-front-matter):
![]( https://camo.githubusercontent.com/8e1975fcbcf06db2ff1b83c40e42f17d1bf4a15273637e69d36991343c0d500a/68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f666f7265737472792d64656d6f2f766964656f2f75706c6f61642f64755f31362c775f3730302c655f6c6f6f702f76313537313135393937342f74696e612d6865726f2d64656d6f2e676966)


2. [TinaCMS]( https://github.com/tinacms/tinacms) 基于 Git 后端的,一整套的可扩展的 headless 内容管理系统, 后端将 Git 上的 Markdown 文件生成 GraphQL API 进行查询. 前端 dashboard 用的 nextjs. 它的可视化编辑器比较强大,而且有意思, 使开发者和普通内容创作者能够无缝协作.
@chnwillliu 虽然 super 可以这样,但是实例方法不是这样用的,如果不需要`this`,那么应该定义为 static 方法或者函数.
### 请说出方法一中的问题和缺陷

> 首先,该函数只能在函数内部被调用,即在子类方法中使用 `getSuper(this)(...args)` 调用父类方法。如果在函数外部调用该函数,则无法获取到正确的调用者函数名。
>
> 其次,该函数只能用于访问父类方法,而不能用于访问父类属性。如果父类属性与子类属性同名,则无法通过该函数访问父类属性。
>
> 最后,该函数使用了 `arguments.callee.caller`,这是一个非标准的特性,在严格模式下可能会被禁用。

补充:函数表达式也不存在`arguments`, 而且目前 JS 几乎都是在严格模式下,所以该方案基本无用.

### 那么方法二中的问题和缺陷

> 该实现方式可以实现模拟 `super` 访问父类方法的功能,但是有一些问题和限制。
>
> 首先,该实现方式使用了 `Reflect.getPrototypeOf` 方法获取实例的原型对象。这种方式可以正确地获取实例的原型对象,但在一些特殊情况下可能会出现问题,比如当实例的原型链中存在 Proxy 对象时。
>
> 其次,该实现方式只能在子类方法内部调用 `getSuper` 函数,且需要手动传入父类方法名。这样就需要手动维护父类方法名,容易出现错误。
>
> 最后,该实现方式没有考虑多层继承的情况。如果子类的父类也继承自其他类,则可能无法正确地访问到最终的父类方法。


### 那么方法三呢


> 该实现方式可以实现模拟 `super` 访问父类方法的功能,但是也有一些问题和限制。
>
> 首先,该实现方式使用了 Proxy 对象来代理实例对象,以拦截属性的访问。这种方式可能会带来性能上的损失,特别是在大规模的应用中。
>
> 其次,该实现方式只能用于访问父类属性或方法,而不能用于访问父类的私有属性或方法。
>
> 最后,该实现方式可能会存在多层继承的情况。如果子类的父类也继承自其他类,则可能无法正确地访问到最终的父类方法。

补充: 当子类重载了该方法,那么该实现无法访问到父类方法,需要修改,总体来说 ChatGPT 想得过于复杂

### 最后,什么是多层继承的情况

多层继承是指一个子类从另一个子类继承,而这个子类又从其它父类继承。举例说明:

```javascript
class A {
m() {console.log('A')}
}
class B extends A {
m() {console.log('B'); getSuper(this).m()}
}
class C extends B {
m() {console.log('C'); getSuper(this).m()}
}

如果不支持多重继承,那么`B.prototype.m()`中`getSuper()`就会出错.
2023-03-14 20:45:25 +08:00
回复了 cheunghy 创建的主题 程序员 开源项目组织征集伙伴
@cheunghy No, Primsma 是静态生成 Schema 的技术,所以无法做到在运行时刻动态增加删除表和数据源. 它的实现是建立在 ORM 在设计阶段确定好的,如果需要 Upgrade 那么也是 Stop 后 migrate. 没有考虑 headless 动态内容的 CMS, 以及如今的低代码 Online 平台(需要在线增改表以及字段,甚至从第三方拉数据(动态增加 datasource).
2023-03-14 10:48:39 +08:00
回复了 yueji 创建的主题 程序员 现在安卓一键 Root 工具都没什么作用了
2023-03-14 10:41:23 +08:00
回复了 cheunghy 创建的主题 程序员 开源项目组织征集伙伴
stared, Prisma 的问题是无法运行时刻动态创建 datasource 和 model, 硬伤到现在都无法解决: https://github.com/prisma/prisma/issues/6442. what's about teo?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5382 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 18ms · UTC 07:33 · PVG 15:33 · LAX 00:33 · JFK 03:33
Developed with CodeLauncher
♥ Do have faith in what you're doing.