PURSUE ULTIMATE FACTS

2024-05-15
iTunes 设备

第7章 iTunes 设备

FIGURE

BioBuilder 的 iTune 设备活动强调设计-构建-测试周期的“测试”阶段。您将使用酶生成基因回路的几种变体。这些电路的 DNA 序列有微小差异,预计会改变细胞产生的酶的量。您将使用酶测定来定量测量电路的输出。然后,您将结果与根据略有不同的 DNA 序列的已知行为所预测的结果进行比较。

对于大多数工程系统来说,观察到的行为和预测的行为之间存在显着差异是不可接受的。如图 7-1 所示,如果将新的机翼形状添加到飞机机身上,使飞机以意想不到的方式飞行,航空工程师会怎么想?面对这种不确定性进行设计和建造将产生巨大的费用,并可能危及生命。工程师会发现,如果简单部件(无论是螺母和螺栓,还是电阻器和放大器)的组合产生意想不到的行为,他们的设计几乎不可能继续进行。

FIGURE

图 7-1 意外行为。在将飞机的标准尾翼(左)修改为新颖的形状(右)时,工程师必须关注意外行为,例如影响飞机安全着陆的差异。

更成熟的工程学科依赖于可以通过多种方式进行功能组装的模块化组件,从而可以轻松根据个人需求定制组合。这些部件不仅需要物理连接,而且在连接时,它们的行为也必须符合规范。简而言之,零件组装后必须按预期运行

FIGURE

目前,在合成生物学领域,生物工程师仍在致力于遗传部件的这种功能性组装。尽管研究人员已经在分子水平上描述了许多细胞行为——并且在许多情况下可以对执行生物功能所必需且充分的遗传元件进行分类——以新的方式组合这些遗传成分通常会产生意想不到的结果。合成生物学家可能很快就能物理组装遗传物质,以相对容易地组装任何所需的序列,但将该序列置于新的细胞环境中可能会以不确定和变化的方式影响其功能,即使该序列已被彻底研究和充分表征孤立地或在其他情况下。

除了标准化之外,部件的模块化、绝缘性和测量也是实现此类功能组装的关键组成部分(有关进一步讨论,请参阅 DNA 工程基础章节)。在本章中,我们将探讨如何将这些附加原则应用于一般标准工程,特别是合成生物学。然后,我们详细介绍了 iTune 设备实验,以测试细胞中的各种遗传电路,以便比较它们的预期行为和测量行为。

模块化

模块化是指工程师可以通过组合功能单元或“模块”来设计和生成系统的想法。尽管这个概念对于工程来说很直观,但模块化的想法最近才被应用于遗传部分。模块化对于生物学的应用是明智的,因为我们可以将离散的功能归因于特定的 DNA 片段——然而,即使我们现在认为这一原则是理所当然的,仍然需要大量的研究来证实它(见下面的边栏)。

基因作为模块

合成生物学假设一组遗传“部分”可以组合和操纵以产生精确的行为。这个前提背后的想法——特征是由 DNA 的离散功能片段产生的——实际上是相对较新的。直到 1900 年代初期,格雷戈尔·孟德尔 (Gregor Mendel) 的豌豆实验结果被重新发现,科学家们才开始认识到性状可以保持独特,为我们目前对遗传学的理解铺平了道路。

长期以来,人们认为后代融合了父母的遗传特征。孟德尔对豌豆植物的精心育种工作表明,混合并不总是发生,有时一种性状可以从亲本植物忠实地传递给后代植物。孟德尔通过仔细计数和测量豌豆植物的一些关键性状(例如花色和豆荚形状)来进行这些遗传研究。他的数据表明,特征可以保持独特,并以可预测的比例独立传承。他的研究结果表明,遗传应该从离散实体的角度来考虑,他将其称为因素,但后来被命名为基因。他的工作展示了这些因素如何以可预测的方式在代际间传递。这个想法在今天被认为是理所当然的,但在当时却是开创性的,导致了经典遗传学领域的建立。

花了 50 多年的时间才对孟德尔观察到的遗传模式提供了分子解释。我们现代的理解很大程度上依赖于沃森和克里克所描述的 DNA 双螺旋结构,以及雅各布和莫诺对紫胶操纵子中基因表达的经典研究。得益于这些科学进步和其他科学进步,我们现在了解了生物学的基本思想,例如遗传信息从 DNA 通过 RNA 到蛋白质的流动,以及将性状重塑为编码功能的 DNA 序列。合成生物学中 DNA 部分的想法就是这些经典成就的产物。

FIGURE

录制音乐行业的变化提供了一个不错的(但并不完美)的例子,说明从增加的模块化中获得的优势。在二十世纪的大部分时间里,最常见、最有利可图的音乐发行方式是唱片,后来是盒式磁带和 CD。在所有这些格式中,音乐主要以完整专辑的形式出售。有单曲可供选择,但价格要高得多,因此即使人们只喜欢专辑中的几首歌曲,他们通常也会购买该专辑。这张专辑是音乐产业及其艺术家的标准“单位”。这个单位在二十一世纪初彻底改变,当时音乐被数字化。有了这一进步,下载音乐而不是购买实体专辑变得很容易。专辑中的歌曲可以轻松拆分,使歌曲成为独立的模块,听众可以根据需要进行混合和匹配。从这些模块化歌曲中制作定制播放列表的广泛机会改变了人们对音乐收藏的看法,并改变了行业的标准“单位”。

我们在商业音乐中看到的增强的模块化和定制化概括了我们对基因表达单元不断变化的概念,这为合成生物学中基因“部分”一词的使用铺平了道路。孟德尔的早期工作表明,性状是离散的实体。那么,在与录制的音乐的类比中,表现出特征的有机体可以被认为类似于整张专辑——该特征只存在于有机体的背景中,就像歌曲只存在于整张专辑的背景中一样。弗朗索瓦·雅各布博士和雅克·莫诺博士的工作将在本章后面详细介绍,他们通过对乳糖代谢的描述戏剧性地重塑了这一图景,根据动态遗传元素而不是具有性状的整个生物体来重新构建性状。特定的 DNA 片段被发现可以协同控制细胞的行为,但这些片段中的遗传元件是不可分割的,并且不容易定制以满足新的目的。这个里程碑可以被认为是音乐产业的“专辑”和“单曲”阶段之间的某个阶段。现在,在基因工程和可互换遗传部分的时代,许多编码特定功能的基因序列是已知的并且可以精确操纵。我们可以通过以专门的方式重新组合这些遗传元素来定制这些遗传元素的“播放列表”,以满足我们的需求。 DNA 工程基础章节更全面地描述了这种操作的技术。在这里,我们将探索由于我们可以混合搭配遗传部分而出现的工程机会。

绝缘

随着模块化材料的混合和匹配,出现了新的复杂情况,包括模块之间以不良方式相互作用的可能性增加。最小化模块之间意外交互的一种工具是隔离各部分的行为。购买汽车时考虑可用的模块化选项。您可以通过多种方式升级基本型号:增强型扬声器系统、更强大的发动机、加热后排座椅等等。这些附加组件的出现在一定程度上要归功于汽车工程师采用的模块化设计方法。如果没有这种方法,升级到精美扬声器系统的成本将非常高昂,因为前控制台需要完全重新设计以适应每个品牌的扬声器。相反,早期设计阶段就包含了管理单元升级的灵活性,因此购买时的更改不需要大量的重新设计工作。汽车的每个模块都可以进行定制,设计人员从一开始就付出了艰苦的努力,使各个部件相互独立。

除了创建可以通过多种方式组合的物理离散零件之外,功能装配还要求零件表现出与其周围其他元素可分离的行为。例如,如图 7-2 所示,音响的操作不得影响驾驶员方向盘的操作。如果转动收音机上的旋钮也能转动方向盘,那将是一个真正的驾驶挑战。这种部件操作之间的行为分离称为绝缘

FIGURE

图 7-2 汽车设计中的绝缘。现代汽车由多个部件组成,包括座椅、车轮、方向盘和音响。组件独立工作,因此一个组件的使用不会干扰车内其他组件的运行。

当用遗传部件建造时,类似的预期设计和遗传部件的绝缘是很难实现的。细胞是一个流体环境,分子、蛋白质和细胞结构不断混合。当他们不断遇到新的伙伴和邻居时,如何才能隔离他们的行为呢?此外,对单元的“升级”可能在某些蜂窝设置中按预期运行,但在其他设置中可能不按预期运行。 “多么丰富多彩的世界”一章中的活动就是这一挑战的例证。即使升级一开始似乎有效,但细胞的局部环境是动态的,要求细胞设计在许多环境和生长条件下运行。最后,与任何其他工程基质不同,生命材料可以并且将会随着时间的推移而发生变异,正如我们在金面包章节中探讨的那样。工程产品的演变使得设计挑战变得更加严峻。

FIGURE

为了管理生物设计的所有复杂性,我们可以使用强大的抽象工程工具,如生物设计基础章节中所述,因此关于一个设计元素的决策可以独立于其他元素的决策而做出。可以更换汽车的音响而不影响转向。此外,模块化、隔离和抽象应该允许在不影响系统设计的情况下做出有关设备的决策。回到汽车的类比,你不需要仅仅因为想要前轮驱动就购买卡车而不是汽车。

但这种方法在合成生物学实践中效果如何?合成生物学家希望能够以可预测且合理的方式将具有已知特性和相对强度的部件组合成新的合成电路。通过测量由特征明确的部件组成的合成系统的实际性能,并将测量结果与预测进行比较,生物构建者可以评估他们的设计,并更接近正确预测未来设计的成功或失败。

测量原理

有些事情是很难衡量的。例如,幸福没有我们都同意的尺度或单位,也没有可靠的工具来检测它。其他事情一直在测量:我们可以将数值与牌组中的卡片、平均成绩或体育联盟中的球队排名相关联。无论您是做饭还是购买现成的衣服,您都依赖测量来进行数字、尺寸、时间或计数。 测量报告项目的状态及其行为、关系或特征

FIGURE

当某些东西可以测量时,单位为我们提供了一种比较项目的通用方法。正如我们在《DNA 工程基础》一章中所述,标准化每个测量的单位并非易事,但对于许多项目,我们都同意一些单位。用“手”测量马的高度就是一个很好的例子。感谢亨利八世将手标准化为 4 英寸,即使这个过时的单位仍然具有有意义的测量信息。熟悉手测量的人都知道,一匹站立 16 手高的马肩胛骨(靠近肩膀)的高度为 64 (16 x 4) 英寸,而另一匹身高 16.3 手高的马则为 67 (16 x 4 + 3) 英寸,不是 65.2 (16.3 x 4) 英寸。

有意义的测量,无论单位如何,都是现代科学方法的标志。正如孟德尔向我们展示的那样,我们在计算事物时可以看到模式。定性数据也可以提供丰富的信息,正如“淡香水”一章中所探讨的那样。不过,在这里,我们重点关注数学测量如何强大地帮助我们操纵信息并将其转换为其他表示形式。数字还使我们能够进行比较和预测。

举个例子,当你只有定性测量时,尝试将你和你朋友的步行去学校的路进行比较。在这种情况下,你只能说这样的话:“学校离我家很远,比你家远得多,但我走得比你快。”但通过测量里程、时间和速度,突然间就可以算出你们每个人需要多早离开家,早上 8 点到学校见面。如果您知道距离和步行速度,您就可以预测行程需要多长时间。将这一教训应用到工程中:测量使我们能够预测,这非常有用,但前提是我们能够进行相关测量。接下来描述是什么使测量具有相关性。

通常测量什么

工程师不仅使用测量来描述,还用于控制、组装和改进被测量的对象。模块化零件的组装说明了测量的重要性。为了可靠地将一个零件与另一个零件组合在一起,必须了解每个零件的相关特征,并且必须符合某些商定的标准。否则,齿轮将无法转动,螺母将无法安装在螺纹上,乐高积木也无法组装成死星和埃菲尔铁塔的模型。通过符合特定的测量标准,模块化零件成为现代工厂和高效装配线制造的基础。表 7-1 详细介绍了工程师所依赖的一些比较和测量结果。

表 7-1 工程学科的典型测量

测量   描述   实用程序
静态性能 将一系列受控输入映射到部件的可测量最终输出 有助于确保一个部件的输出足以触发电路中的下一个部件
动态性能 随着时间的推移,部件响应输入信号变化的输出 显示系统在初始刺激下的行为方式,这可能与稳定的长期行为不同
输入兼容性 部件如何响应各种输入 说明部件与各种上游部件/输入组合的灵活性
可靠性 以平均无故障时间 (MTF) 来衡量 用于确定系统预期按最初指定的方式运行多长时间
材料或资源的消耗 决定电源或资源池的选择 影响机箱决策等

进行和报告合成生物学的测量

您的测量结果会告诉您关于合成 DNA 电路如何在细胞中工作的不同信息。如果我们能够缩小到微观尺寸,就像 Frizzle 女士在《神奇校车》系列书籍中所做的那样,然后神奇地坐在 DNA 上来计算移动的 RNA 聚合酶的数量,就可以对电路的活动进行最直接的测量每秒沿着DNA。用电子术语来说,这就像对电流中流动的电子进行计数。然而,在实验上更合理的是测量转录和翻译的产物。每秒产生多少个 mRNA,或者蛋白质如何随着时间的推移而积累?这些 RNA 和蛋白质测量是可能的,但需要大量的设备、时间和专业知识。为了使 BioBuilder 的 iTunes 实验室活动变得更容易,测量了 β-半乳糖苷酶 (β-gal) 活性,这间接但很好地反映了每个电路的性能。

经验表明,当 DNA 回路从一种生物环境转移到另一种生物环境时,可能很难预测遗传部分将如何发挥作用。某个部分的活性在许多层面上受到不同程度的影响,包括新细胞环境中的转录、翻译和蛋白质活性的速率。增加可靠组装的挑战的是,当构建由多个遗传部分组成的生命系统时,很难预测这些部分将如何相互通信。例如,一个部件生成的强“开启”信号可能不足以触发与其一起工作的下游部件。

FIGURE

然而,合成生物学并不是第一个遇到这些组装挑战的工程努力。更成熟的工程学科采用的一种方法是开发数据表,描述任何给定零件如何根据特定参数工作。为了制作此类数据表,工程师必须收集足够的数据来充分描述其零件,并使用特定的输入并在许多不同的条件和环境下对其进行测试。合成生物学家可以为他们的零件创建类似的数据表。例如,标准生物部件注册表中发布的一份转录因子数据表报告了该部件的静态性能、动态性能、输入兼容性和可靠性。这些参数与前面表 7-1 中描述的参数相同。理想情况下,这些测量值和部件行为的描述在使用时都有效。然而,即使如果其行为因环境而异,零件数据表上的说明和信息也可能允许生物构建者考虑这种可变性。这种“数据表”方法仅适用于以可靠且可预测的方式变化的部件,情况并非总是如此,但它是迈向功能标准化的重要第一步。

影响零件感知鲁棒性(或缺乏鲁棒性)的另一个因素是实验室之间测量技术的正常差异。由于技术、培养基、细胞生长状态以及其他因素的细微差异,即使是同一实验室中测量同一事物的两个人也不太可能得出相同的值。合成生物学家热衷于找出这些变异的根本原因,但认识到这是一个长期目标。同时,您可以使用校准参考来比较在一个地方进行的测量与在另一地方进行的测量。出于这个原因,BioBuider 的 iTune 设备实验室使用了参考标准。

iTune 设备实验室的基本概念

在此 BioBuilder 活动中,您可以探索遗传部分的生物活性,这些遗传部分将结合起来产生不同数量的酶。这些部分中的每一个都被独立地描述为“弱”、“中”或“强”。此活动询问当这些单独特征的部件以不同方式组合时,您能如何预测它们的行为。如下所述,对基因表达以及启动子和核糖体结合位点部分的作用的一些了解对于开始是至关重要的。

促销员和 RBS

“DNA 制造 RNA 制造蛋白质”这句口头禅通常被称为基因表达的“中心法则”,是蛋白质通过 RNA 序列翻译组装而成,而 RNA 序列由 DNA 序列转录而成的原理的简写。蛋白质在细胞中执行许多关键工作,因此转录和翻译控制着细胞的许多行为和特征。因此,转录和翻译已被广泛研究,并且对于受控基因表达来说必要且充分的许多核心组件是已知的(图 7-3),这并不奇怪。

FIGURE

图 7-3 基因表达单元的符号表示。左侧箭头所示的启动子序列结合 RNA 聚合酶以启动转录。核糖体结合位点缩写为“RBS”并用半圆表示,是编码核糖体结合以启动翻译的 mRNA 片段的 DNA 序列。开放阅读框,缩写为“ORF”,由右侧箭头表示,代表编码蛋白质的DNA序列。启动子和ORF的箭头方向表示它们的读取方向。

对于转录,启动子是结合 RNA 聚合酶(一种复杂的多蛋白酶)的 DNA 序列,以启动从 DNA 模板形成 RNA 链。对于翻译,起始位点称为核糖体结合位点 (RBS),因为核糖体识别该序列以开始从 RNA 模板合成蛋白质。这些序列主要负责自然发生的转录和翻译调控,合成生物学家也可以使用它们来引入自己的调控方案。基于许多已知的启动子和 RBS 序列,研究人员已经确定了这些部分的共有序列,如图 7-4 所示。例如,共有启动子序列是通过比较许多启动子序列中每个位置的核苷酸来确定的。共识是根据每个位置最常见的核苷酸模式建立的。

FIGURE

图 7-4 定义共有序列。句子(左)和基因(右)的多个“序列”对齐以生成一致序列,如底部灰色线所示。绿色字母代表每个位置最常见的字母,它定义了共有序列。红色字母不是该位置最常见的字母,因此不包含在共识序列中。

共有序列与合成生物学相关,因为一般来说,当某个部分与共有序列紧密匹配时,其功能最佳。相反,与共有序列不同的核苷酸越多,该部分完成其工作的能力就越差。因此,共有启动子序列可能是“强启动子”,这意味着它可能会很好地结合 RNA 聚合酶并经常启动转录,而偏离共有启动子或 RBS 序列将是“弱”的,其工作效率低于具有更好匹配的序列。然而,强大并不一定意味着更好。根据应用的不同,工程师可能只需要少量的活性,例如,如果在细胞表面形成孔或调节细胞死亡反应。

紫胶操纵子

细胞根据需要打开和关闭基因产物的能力对其生存至关重要。 20 世纪 60 年代,Francois Jacob 博士和 Jacques Monod 博士通过对细菌中乳糖转运和代谢的研究,确定了基因表达的基本原理。乳糖代谢的基因聚集在乳糖操纵子中(图 7-5),但细菌仅在葡萄糖不存在时才打开这些基因来节省能量。细菌更喜欢葡萄糖作为食物来源,并且只有在没有其喜欢的食物的情况下才会努力利用乳糖。 Jacob和Monod对其调控的分子细节解释是诱导基因的经典模型。在这里,我们仅讨论与 iTune 设备实验室相关的详细信息。

FIGURE

图 7-5 lac 操纵子的符号表示。 lac 操纵子由控制三个下游 RBS-ORF 对(分别为绿色半圆和蓝色箭头)的单个启动子(pLac,绿色箭头)组成。仅当葡萄糖不存在时,操纵子才会产生代谢糖所需的酶。

乳糖代谢的关键蛋白质是一种称为 β-半乳糖苷酶的酶,通常缩写为 β-gal,它由称为 lacZ 的 ORF 在 DNA 上编码。 β-半乳糖酶将乳糖裂解成葡萄糖和半乳糖,细胞可以利用它们来驱动其其他功能。研究人员还发现,β-gal 会与多种类似于乳糖的分子发生反应,包括合成类似物,例如 ONPG,您将在 iTune 设备实验室中使用它。

LacZ 的表达以及整个 lac 操纵子的表达在转录水平上受到正向和负向调节(图 7-6)。当 DNA 结合蛋白通过其 DNA 结合位点下游的 DNA 元件增加转录量时,就会发生正向调节。相反,负调控这一术语用于描述 DNA 结合蛋白在结合 DNA 时降低转录量的情况。对于紫胶操纵子,正向和负向调节因子对细菌环境中的糖种类敏感。当葡萄糖存在时,调节因子会关闭下游 ORF 的转录。如果存在乳糖而缺乏葡萄糖,这些相同的转录调节因子会改变它们的行为,并且操纵子的转录导致乳糖的转运和代谢。

控制 lacZ 的相同正向和负向调节启动子也控制其他 lac 操纵子基因,包括编码乳糖转运蛋白的基因。单个 mRNA 从 lac 操纵子的启动子转录,产生乳糖代谢和运输所需的多种蛋白质产物。由于与每个 ORF 相关的 RBS,每个产物的翻译都可以从单个 mRNA 进行。它是一种紧凑而优雅的遗传结构,大自然已经对其进行了调整,以在适当的时候产生所需量的每种蛋白质。

FIGURE

图 7-6 Lac 操纵子调节。 lacI ORF 编码转录抑制子,该抑制子阻断 Plac 启动子,从而阻断整个操纵子的表达。乳糖或其类似物 IPTG 抑制 LacI 阻遏蛋白,使 Plac 启动子发挥作用并缓解下游操纵子的抑制。

额外阅读和资源

  • Canton, B.、Labno, A.、Endy, D. 合成生物部件和设备的细化和标准化。自然生物技术2008; 26:787-93。
  • Jacob F.,Monod J。蛋白质合成中的遗传调控机制。 JMB。 1961;3:318-56。
  • Kelly, J.R. 等人使用体内参考标准测量 BioBrick 启动子的活性。生物工程学报(2009); 3:4。
  • McFarland, J. 浊度计:一种估算悬浮液中细菌数量的仪器,用于计算调理指数和疫苗。贾马。 1907;14:1176-8。
  • 米勒,J.H.分子遗传学实验冷泉港 1972 年;冷泉港实验室出版社。
  • 萨利斯,H.M.核糖体结合位点计算器。方法酶。 2011;498:19-42。
  • 网站:生物部件注册

FIGURE

iTune 设备实验室

该实验室重点研究表达基因所需的蛋白质和 DNA 序列(启动子、ORF、RNA 聚合酶等),同时也介绍了基础酶学。通过分析九个基因调控设计,探索了模块化、绝缘和测量的工程概念。每种设计都有独特的启动子和 RBS 组合,控制 β-半乳糖苷酶的表达。分光光度分析和酶动力学测定是本实验室强调的主要生物技术技能。

设计选择

与天然存在的 lac 操纵子相比,iTune Device 基因电路的遗传结构更为简单,由 1 个启动子和 1 个 RBS 控制 1 个 ORF(见图 7-7)。为了减轻这些正调节因素和负调节因素对 iTune 设备测量的影响,细胞在丰富的培养基中生长,但不含细胞的正调节蛋白,并且存在 IPTG(一种抑制负调节蛋白的分子)。由于每个 DNA 部分的模块化行为,我们可以定制 iTunes 电路的行为。正如 Jacob 和 Monod 对大肠杆菌的天然紫胶操纵子所描述的那样,iTune 设备的部件具有离散的功能和性能特征,合成生物学家将其用于生物设计。

FIGURE

图 7-7 lac 操纵子的修饰。遗传构建体(例如在 iTune 设备活动中研究的遗传构建体)已删除第二个和第三个 RBS-ORF 对。所得基因表达单元带有单个启动子-RBS-ORF。

实验问题

在 BioBuilder iTune 设备实验室中,您将测量 lacZ 基因产物 β-gal 的活性,以评估不同启动子和 RBS 组合的性能。根据启动子和 RBS 部分与共有序列的比对,它们被分为“弱”、“中”或“强”。然而,它们如何结合使用,可能取决于培养基、菌株背景和评估它们的技术。如果您有时间或有兴趣,您可以在不同的细菌菌株、不同生长阶段的菌株或生命系统中的其他 DNA 回路中进行这些测量。这些因素中的任何一个都可能改变这些简单的启动子:RBS:lacZ 电路在细胞中的工作方式。

FIGURE

在运行实验室进行测量之前,您对这些电路的活动有何预测?表 7-2 可以帮助组织您的“猜测”,并揭示您思维中的任何偏见和理解上的差距。如果我们任意猜测弱启动子和弱 RBS 的组合将产生 10 个单位,强/强组合将产生 1,000 个单位,我们如何估计两者之间的一切?图表中的起始值是理论值,可能无法反映您运行此实验时从这些电路获得的数字。关键是要问如何才能做出好的预测。

表 7-2 假设表

启动子(弱)   启动子(中)   启动子(强)
RBS(弱) 10 ? ?
RBS(中) ? ? ?
苏格兰皇家银行(强) ? ? 1,000

在 BioBuilder 的 iTunes 实验室活动中,测量了 β-gal 活性,因为它间接但很好地反映了每个电路的性能。 β-gal 活性是使用一种称为 ONPG 的底物测量的,ONPG 是一种化学性质与乳糖相似的无色化合物。 β-gal 裂解 ONPG 就像通常裂解乳糖一样。与 ONPG 反应的产物是黄色化合物邻硝基苯酚和无色产物半乳糖。黄色化合物提供可见信号,您可以使用其强度来计算不同电路表达的 β-gal 量。

为了比较不同实验室小组收集的数据,您将使用“参考”启动子:RBS:lacZ 序列。已知该参考会产生一些中间量的酶,因此您可以使用它来校准您进行的所有其他测量。例如,如果您测量的参考标准具有 1,000 个活动单位,而另一个团队测量的相同参考具有 500 个单位,则技术或单位计算中的一些变化可能会导致差异。不过,您的所有测量值及其测量值都应该有同样的两倍差异,因此可以在考虑该差异后对数据进行比较。

您可以将参考视为特定类型的阳性对照。我们预计参考样品会产生 β-gal,从而产生与底物裂解相关的黄色。因为做这个实验的每个人都会使用相同的菌株作为阳性对照,以确保检测中检测到某些酶,我们也可以用它作为所制备酶的准确量的参考。对于本实验室,我们没有包含用作阴性对照的特定菌株。阴性对照预计不会产生酶。根据您想要控制的内容,您可以想象使用没有 lacZ 基因的菌株作为阴性对照,或在不存在诱导分子 IPTG 的情况下使用参考菌株。然而,我们的实验问题侧重于将设计与参考进行比较,我们不太关心电路是否仅在存在 IPTG 的情况下才打开。我们决定参考菌株提供足够水平的实验控制来解决我们的问题:启动子 + RBS 的哪种组合会产生最大的 β-gal 产量?

入门

BioBuilder 的 iTune 设备活动中总共有 10 个菌株可供测试(表 7-3)。对于 10 种菌株中的每一种,您都将在液体培养基中培养过夜,其中包括 LB(生长培养基)、氨苄青霉素(用于选择携带启动子的质粒:RBS:lacZ 构建体)和 IPTG(用于缓解 lacZ 基因的抑制)。

表 7-3 iTune 设备应变描述

菌株#   登记号#
(启动子部分)  
登记号#
(RBS 部分)  
相对强度启动子/RBS
2-R BBa_J23115 BBa_B0035 参考/参考
2-1 BBa_J23113 BBa_B0031 弱/弱
2-2 BBa_J23113 BBa_B0032 弱/中
2-3 BBa_J23113 BBa_B0034 弱/强
2-4 BBa_J23106 BBa_B0031 中/弱
2-5 BBa_J23106 BBa_B0032 中/中
2-6 BBa_J23106 BBa_B0034 中/强
2-7 BBa_J23119 BBa_B0031 强/弱
2-8 BBa_J23119 BBa_B0032 强/中
2-9 BBa_J23119 BBa_B0034 强/强

所有菌株均在“TOP10”大肠杆菌菌株中构建,基因型为:F– mcrA Δ(mrr-hsdRMS-mcrBC) Φ 80 lacZΔM15 ΔlacX74 recA1 araD139 Δ(ara leu) 7697 galU galK rpsL (StrR) endA1 nupG

您将通过使用分光光度计测量 OD600 或使用 MacFarland 浊度标度测量每个过夜液体培养物的细胞密度来开始实验。如果您使用分光光度计,机器会测量细菌样本散射的光量。其在600 nm光下的光密度(缩写为“OD600”)是一个无单位的数字,反映了细菌培养物的密度。使用 MacFarland 浊度样品(您可以根据表 7-4 将其转换为 OD600 测量值),您可以用眼睛而不是机器更近似地进行此测量。

表 7-4 MacFarland 标准到 OD600 的转换

麦克法兰   1   2   3   4   5   6   7
OD600 0.1   0.2   0.4   0.5   0.65   0.8   1.0

然后,您将已知的少量每种培养物(称为等分试样)与洗涤剂混合,洗涤剂将酶从细胞内部释放到缓冲溶液中。缓冲液使 β-gal 酶保持足够稳定,以便与 ONPG 发生反应。您可以使用下面的公式,通过测量添加到反应中的细胞培养物的体积(以 ml 为单位)和 OD600 来计算每个反应中的细胞数量,OD600 反映每个培养物中的细胞密度(以细胞为单位) /毫升):

细胞数 = 细胞数/ml × ml

最终,通过此计算,您可以比较样品之间的“每个细胞”酶活性。

准备好反应管后,您将通过添加 ONPG 开始反应,以精确定时的 10 秒或 15 秒间隔交错添加。反应物将开始变黄。在给定时间内形成的黄色强度反映了细胞在裂解之前产生的 β-gal 酶的量。经过已知的时间并且反应物足够黄色后,您将添加 Na_2 CO_3 (一种淬灭溶液),通过改变 pH 值来停止反应。该淬灭溶液以精确定时的 10 秒或 15 秒间隔添加,以便每个反应可以运行精确已知的时间量,这使您可以计算每分钟经过的酶活性。当反应淬灭后,反应稳定,因此您可以在闲暇时使用分光光度计在 420 nm (Abs420) 处测量黄色的强度,或者与 BioBuilder 网站上显示的颜色标准进行比较。

最后,您可以使用该酶的标准“米勒单位”计算每个菌株的 β-gal 活性。根据以下公式进行计算:

米勒单位的 β-gal 活性 = 1000 × Abs420 / [(反应时间 (min)) × (每个反应中的细胞体积 (ml)) × OD600]

如果您想知道分光光度计上进行的“吸光度”测量和分光光度计上进行的“光密度”测量之间的区别,这里有一个简单的方法来区分它们。当从比色皿中发出的光量比比色皿中吸收光的颜料或其他分子进入的光量减少时,在分光光度计上获得的读数称为吸光度测量。当比色皿中的材料散射而不是吸收光时,您在分光光度计上获得的读数称为光密度,就像您可以在 600 nm 光下测量的颗粒或细胞的情况一样。吸光度和光密度都是无单位的数字,因此可以在没有任何转换因子的情况下用于米勒单位的计算。

提前准备

准备浊度标准品。 如果您在无法使用分光光度计的情况下运行实验方案,表 7-5 中所示的 MacFarland 浊度标准品提供了另一种测量细胞密度的方法。该方法使用1% BaCl 2 在1% H 2 SO 4 中的悬浮液,其在视觉上与在液体培养物中生长的大肠杆菌密度的悬浮液类似。您可以在实验室之前准备好这些浊度标准品。您可以制作任意体积的浊度标准品,但是您应该将它们悬浮并等分到带盖的小玻璃管中。试管的尺寸和放入其中的标准品的体积并不重要。

表 7-5 麦克法兰浊度标准

浊度标度   OD600   1% BaCl_2 / 1% H_2 SO_4 (mL)
0 0 0.0/10
1 0.1 1.05/9.95
2 0.2 0.1/9.9
3 0.4 0.2/9.8
4 0.5 0.3/9.7
5 0.65 0.4/9.6
6 0.85 0.5/9.5
7 1.0 0.6/9.4

要测量细菌样品的浊度,您可以将少量细菌样品转移到与浊度标准所用尺寸相同的玻璃管中。通过识别哪个浊度标准相对模糊放置在标准管后面的深色标记来确定浊度。

经验法则:使用 1 OD600 ~ 1 x 10^9 cells/ml 将浊度测量值转换为细胞密度。

实验前程序

第 1 天:将菌株从刺中划出到平板上。 本实验的细菌菌株已经携带待测试的质粒 DNA 编码遗传电路。这些质粒还赋予抗生素氨苄青霉素抗性。细菌将以“刺”或“斜”的形式到达,这是一个在倾斜介质上装有少量细菌的试管:

  1. 使用无菌牙签或接种环将细菌划线到培养皿上:从牙签或接种环上的刺处收集少量细菌,然后将细胞转移到含有 Luria Broth (LB) 琼脂的培养皿中100 μg/ml 氨苄西林。
  2. 对剩余的刺穿样品重复上述步骤,将每个样品划线到不同的培养皿上。
  3. 将这些培养皿培养基面朝上放入 37°C 培养箱中过夜。如果没有培养箱,室温培养两晚通常会得到相同的结果。

第 2 天:细菌菌株的液体培养过夜。 为了为本实验室的实验部分制作起始培养物,每个菌株的 3 ml 液体培养物在 LB+氨苄青霉素中于 37°C 培养过夜。管中氨苄青霉素的终浓度应为100 μg/ml,管中IPTG的终浓度应为1mM。 3 ml 发酵剂培养物足以完成后续方案。使用无菌接种环或牙签或移液管尖端,将细菌菌落从其中一个培养皿转移到含有 3 ml LB、3 μl 氨苄青霉素和 30 μL IPTG 的大无菌培养管中。对于每个学生或学生团队必须培养的每种菌株来说,这个体积绰绰有余:

  1. 对您要接种的每种菌株重复上述步骤。
  2. 将培养管放入滚轮中,37°C 培养箱过夜。确保彼此平衡管子,以最大程度地减少滚轮上的压力。

如果没有滚轮或培养箱,您可以将每个起始培养物的体积增加至 10 ml LB+amp+IPTG,然后您可以在带有搅拌棒的小锥形瓶中在室温下培养样品。您应该以这种方式种植它们至少 24 小时以达到饱和。

实验室协议

通过此测定,您将确定每种设计产生的 β-gal 活性量。您应该尝试对每种菌株进行重复测定,然后汇集您的班级数据,以获得对您测量的值的信心。

数据收集:使用分光光度计测量浊度和颜色

  1. 为每个过夜培养物制备 3.0 ml 1:10 稀释液(300 μL 细胞于 2.7 ml 碳酸氢盐缓冲液中)。
  2. 如果您的分光光度计使用玻璃分光光度计管,则可以继续执行下一步。或者,您可以将稀释的细胞混合物转移到合适的比色皿中,填充约四分之三满。
  3. 测量该稀释液在 600 nm 处的吸光度 (OD600)。在数据表中记录值 X 10。这是未稀释细胞的密度。如果您没有分光光度计并使用浊度标准品,请将培养物与 MacFarland 浊度标准品进行比较,并使用表 7-4 转换为 OD600。
  4. 对所有细菌样本重复此数据收集。
  5. 现在您可以将这些稀释液和试管放入 10% 漂白剂溶液中。
  6. 将 1.0 ml 碳酸氢盐缓冲液添加到 11 个标有 B(空白)、R(参考)和 1 至 9(样品)的试管中。这些是反应管。
  7. 将 100 μl 过夜培养物(未稀释)添加到每个管中。将 100 μl LB 添加到 B 管中,作为空白。
  8. 向每管中添加 100 μl 稀释洗洁精,裂解细胞。
  9. 每个管涡旋 10 秒。您应该精确地计时此步骤,因为您希望尽可能相同地对待重复。
  10. 将 100 μl ONPG 溶液添加到第一管中开始反应。同时启动计时器或秒表,以配合您开始第一反应的时间。等待 15 秒,然后将 100 μl ONPG 溶液添加到下一个管中。对所有管重复此操作,以 15 秒的间隔添加 ONPG,包括空白管。
  11. 10 分钟后,向第一个管中加入 1 ml 苏打灰溶液,终止反应。等到计时器读数为 10 分 15 秒,然后终止下一个反应。对所有管重复此操作,每隔 15 秒添加苏打灰溶液,包括空白管。现在反应已经稳定,可以留到第二天继续阅读。
  12. 如果您的分光光度计使用玻璃分光光度计管,则可以跳至下一步。如果没有,您需要将一些反应混合物从反应管转移到比色皿中,将其填充到大约四分之三满。
  13. 读取每个样品管在 420 nm (OD 420) 处的吸光度。这些值反映了每个管中黄色的量。如果您没有分光光度计并且要将颜色与油漆碎片进行比较,请按照 BioBuilder 网站上的说明进行操作。
  14. 根据前面给出的公式计算每个样品中的 β-半乳糖苷酶活性。

FIGURE

FIGURE

Read More

2024-05-15
气味香水

第6章 气味香水

FIGURE

Eau That Smell 实验室强调工程设计-建造-测试周期的“测试”阶段。您将测试两个不同的合成生命系统,这些系统已经由其他工程师设计和建造。有两种设计选项供您比较。这两种设计都改变了通常有臭味的细菌的气味,而且看起来它们都可能是“正确的”。在比较设计时,我们将有机会探索合成生物学家如何做出设计选择,以及学习和教授一些有关基因调控和细胞生长的重要科学思想。这项活动的灵感来自 2006 年的国际基因工程机器 (iGEM) 项目,其中麻省理工学院的本科生团队设计了一种新的细菌菌株,他们称之为“大肠杆菌”。研究小组培育出一种闻起来像香蕉或冬青的大肠杆菌菌株,具体取决于细胞的生长阶段。 BioBuilder 实验室活动着眼于控制细胞生长周期和气味产生之间关系的两个遗传程序。从理论上讲,这两种设计选项看起来几乎相同,但现实世界的行为通常会偏离预期,因此实验室活动允许直接测试此处描述的菌株。在详细介绍实验之前,我们将介绍该实验所基于的 iGEM 项目,以提供上下文,并提供设计过程的说明,包括抽象、设计层次结构和迭代的使用。

来自 Eau d’coli iGEM 项目的灵感

通过探索 2006 年 MIT iGEM 团队如何实现最终设计并构建其合成系统,我们将说明设计过程并提供一些有关细胞生长和基因表达通常如何调节的背景。大肠杆菌的例子也为讨论使用细胞作为工厂来制造材料(在本例中是闻起来很香的材料)以及前体与产品之间的关系提供了很好的机会。

确定挑战

FIGURE

Eau d’coli 项目背后的团队从一个非常简单的观察开始:大肠杆菌的气味非常难闻。气味是一个问题,因为许多合成生物学家使用微生物来生产药物和其他所需化合物等分子。使用大肠杆菌作为小型化工厂需要大量的臭细菌,最终也会使实验室闻起来很臭。因此,iGEM 团队想:为什么不设计一种闻起来很香的大肠杆菌菌株呢?

头脑风暴解决方案

iGEM 团队确定了想要解决的问题后,考虑了各种解决方案。确定的两种选择涉及消除自然产生的难闻气味或引入新的、更令人愉悦的气味。该团队最初决定引入一种新的气味,而不是仅仅消除自然产生的气味,他们的想法是,难闻的气味是由多种代谢途径和化合物产生的,因此很难完全消除。

系统级设计

FIGURE

此时,团队已准备好指定系统级设计。用简单的语言来说:细菌会吸收一些前体化合物作为输入,这些前体化合物可以被细胞转化为气味好的输出

FIGURE

在设计系统时,iGEM 团队必须考虑使用哪种类型的细胞或生物体。因为该团队希望大肠杆菌产生令人愉悦的气味,从而盖过其自然臭味,所以显而易见的选择是在大肠杆菌中进行研究。然而,有很多应变可供选择,正如我们将看到的,在构建最终系统之前,团队必须对底盘进行一些后期调整。

设备级设计

FIGURE

随着系统级设计规范的完成,团队开始考虑其设备。首先,显然团队需要某种类型的气味生成装置,将无气味的前体化合物转化为气味。团队成员搜索了科学文献并确定了满足这一要求的五种自然发生的代谢途径。所有这些酶促途径都可以将特定的前体化合物转化为具有宜人气味的产品。研究小组考虑使用的途径包括来自模型植物拟南芥的茉莉花香、来自罗勒品种的肉桂香、来自金鱼草花的“清新花香”香、来自苦芥菜的冬青香和来自酵母(酿酒酵母)的香蕉香。

FIGURE

理论上,团队可以继续使用这些设备中的任何一个,但在继续设计过程之前,重要的是通过一些初步实验缩小选项以确认可以隔离有问题的设备并且这些设备会产生所需的气味。您可能认为在早期阶段进行测试违反了设计-构建-测试周期,因为团队仍处于“设计”阶段,但事实上,在需要时在这些阶段之间切换非常有用。在这种情况下,团队本质上是对每个潜在设备进行最小的设计-构建测试周期,以测试其是否朝着正确的方向前进,而不是围绕可能永远无法实际运行的设备完成整个设计。

FIGURE

通过这些最初的实验,团队无法分离出产生茉莉花和肉桂香味的 DNA,换句话说,它在循环的“构建”阶段被阻止,使得这些设备无法继续使用,并且在“测试”阶段,文献报道的“新鲜和花香”气味更接近樱桃止咳糖浆,这对于实验室来说不是理想的气味。因此,该团队最初的实验留下了两个剩余的设备选项,即产生冬青和香蕉香气的设备。图 6-1 显示了团队的设备级设计。

FIGURE

图 6-1 器件级设计。冬青生成装置(WGD)将前体化合物输入转换为冬青气味输出。香蕉生成装置(BGD)将前体输入转换为香蕉气味输出。

从这里开始,团队可以继续进行零件级设计工作来指定这些设备,但相反,团队看到了改进系统级设计的机会,即重新设计系统,以便它可以在两种气味之间切换发气设备。系统级设计的修改并不表明初始设计有任何失败或缺陷。不同抽象级别之间的这种类型的移动是设计过程中不可或缺的一部分。

系统级设计,修订

FIGURE

有了两个气味生成装置,团队意识到,除了制造气味更好的细菌的最初目标之外,气味还可以用作细胞功能的报告者。许多合成生物学报告基因都是视觉报告基因——绿色荧光蛋白 (GFP) 是最受欢迎的——但在某些应用中,气味报告基因可能更合适。

研究小组决定使用气味作为细胞生长的报告者,因此细胞在活跃生长和分裂时会发出一种气味,而在达到最大密度时会发出另一种气味。细菌细胞的生长遵循一种特征模式,如图 6-2 所示。

FIGURE

图 6-2 细胞生长曲线。通过分光光度计或其他方法测量的细胞密度作为时间的函数绘制,对应于三个细菌生长阶段(滞后、对数和静止)的区域之间的边界用虚线显示。

当细胞最初被引入新鲜培养基时,它们会处于滞后期,在此期间它们会适应新环境,并且不会积极生长或分裂。在此阶段溶液中的细胞数量不会急剧增加,因此在此期间生长曲线平坦。细胞在这个滞后期准备好生长后,就会进入对数期,也称为指数期,在此期间它们生长和分裂非常快。在 37°C 的实验室中培养的大肠杆菌大约每 30 分钟就会翻倍。当它们分裂时,它们会利用培养基中的营养物质并分泌抑制生长的废物,最终导致它们进入第三个生长阶段,即静止期,此时它们不再生长或分裂。此阶段的细胞仍然存活,当样品稀释到新鲜培养基中时,从滞后期到对数期再到稳定期的整个生长曲线可以再次开始。

在实验室培养大肠杆菌的研究人员在进行实验时通常需要监测这些阶段。例如,当使用大肠杆菌生产精细化学品或药物时,固定相的生产率通常最高。相比之下,蛋白质产品通常与生长相关,因此细胞应尽可能保持在对数生长期,以产生最大量的所需化合物。传统上,研究人员使用分光光度计来确定实验细胞的生长阶段,分光光度计是一种测量穿过样品的光量的仪器。进入样品的光量与离开样品的光量之差称为样品的光密度。当分光光度计设置为 600 nm 波长时,细菌细胞会散射入射光,因此可以将样品的群体测量为“OD600”,即样品在 600 nm 光下的光密度。根据 OD600 随时间的变化,可以创建如图 6-2 所示的生长曲线,其中时间沿 x 轴显示,细胞密度显示在 y 轴上。然而,并非每个实验室都有分光光度计,因此拥有另一种不依赖昂贵仪器(例如气味)的生长期指示器可能非常有用。

考虑到这一点,iGEM团队修改了项目的系统级设计,如图6-3和图6-4所示。

FIGURE

图 6-3 修改后的器件级设计。新的输入,细胞生长,需要修改系统的原始设备级描述。

FIGURE

图 6-4 气味产生装置对细胞生长阶段的反应。显示了该系统的两个气味产生装置。它们对细胞生长的特定阶段敏感并在特定阶段发挥作用。

请注意,现在的输入是细胞生长阶段,而不是前体化合物。该团队仍然需要进一步定义项目的系统级设计,以确定细胞在生长曲线的哪个点应该闻起来像什么。它有两种气味和三个生长阶段。由于对数相和稳定相通常与研究人员最相关,因此研究小组决定这两个相应该具有气味。在最初的实验中,研究小组发现冬青的气味比香蕉的气味弱,因此他们决定最好的解决方案是让细胞在对数期闻起来像冬青,然后在稳定期切换到香蕉气味。这样,更强烈的香蕉气味将在任何剩余的冬青气味之上被检测到。

设备级设计,修订

随着这个新计划的到位,iGEM 团队还需要修改项目的设备级设计。在最初的设计中,这些设备将无气味的前体化合物转化为有气味的化合物。 对于新设计,需要一个额外的步骤。现在,细胞必须产生前体化合物,将其输入气味产生装置中,以产生冬青和香蕉的香气。在这里,对科学文献的回顾再次至关重要。已知冬绿装置的前体是一种称为水杨酸的分子,而香蕉装置的前体已知是异戊醇。在细胞中产生这些前体化合物需要设备,因此更新的设备列表(图6-5)包括水杨酸生成设备和异戊醇生成设备。

FIGURE

图 6-5 重新修订的器件级设计。新的设备级设计包括两个附加设备,水杨酸生成设备(saGD)和异戊醇生成设备(iaGD)。

在这里,您可以看到砷传感器设计与砷检测系统之间的类比,这在生物设计基础章节中进行了广泛讨论。该砷检测系统还包括两个装置:砷检测装置和颜色发生装置。该系统的设计者可以将这两种功能组合到一个设备中,但这样的设计会使重复使用任何部件变得更加困难。这种气味生成系统的设计也遵循类似的原理。 理论上可以制造一个可以将细胞生长阶段转化为两种气味之一的设备,但通过将系统分解为多个设备可以增强设计的灵活性和模块化

您可能会注意到,我们尚未指定哪些设备对细胞生长阶段敏感。可以设计该系统,使得前体仅在特定的生长阶段产生,或者设计该系统,使得总是产生前体,并且只有气味产生装置对细胞的生长阶段敏感。这些设计选择各有优点。如果总是制造前体并且对气味产生装置进行监管,那么气味可能会更快地产生。另一方面,它可能会增加细胞的代谢压力,以始终产生前体,从而可能影响细胞的健康或影响其他功能。显然,目前没有唯一正确或错误的答案。相反,作为生物建造者,需要做出选择。在这种情况下,iGEM 团队选择根据生长阶段调节气味产生装置并组成性地生产前体化合物。

零件级设计

FIGURE

有了这个设备级规范,就可以开始部件级设计阶段。

首先要考虑的事情之一是如何检测细胞的生长期,这是系统的关键输入。幸运的是,生物学提供了一种自然发生的解决方案。存在的细菌启动子仅在细胞生长周期的某些阶段有活性。当细菌 RNA 聚合酶分子结合启动子开始转录时,它作为全酶进行转录,其中聚合酶的核心单元与称为 RNA 聚合酶 sigma 亚基的特殊亚基结合。 σ 亚基有多种“口味”,例如,σ70 亚基与对数期启动子典型的 DNA 序列结合,σ38 亚基与与稳定期启动子相关的 DNA 序列结合。 麻省理工学院 iGEM 团队在文献中搜索了仅在细胞生长稳定期才有活性的启动子序列,并发现了“osmY”启动子。该团队将该启动子插入香蕉气味产生装置中,以便该装置仅在稳定阶段才会激活,正如该团队在项目的系统级设计规范中所定义的那样。

为了构建冬青气味产生装置的对数期表达装置,最直接的方法可能是找到仅在对数期生长期间活跃的启动子。然而,麻省理工学院的 iGEM 团队当年选择了不同的解决方案:它使用了与香蕉气味生成装置相同的 osmY 启动子,并在 osmY 启动子和编码酶的开放阅读框之间添加了另一个装置,以产生香蕉气味。冬青的气味。该团队选择使用的设备称为反相器或非逻辑门。逆变器设备的真值表和基本遗传学将在第 103 页即将推出的侧边栏“黑匣子内部”中进行探讨。但即使没有对其工作原理的机械理解,它也可以成为一个有用的构建工具。 逆变器将反转其输入。如果 osmY 启动子应该“打开”(因为它将处于稳定相),则 osmY 启动子与逆变器相结合,在稳定相中将下游部分“关闭”。如果细胞处于滞后期或对数期,当 osmY 启动子正常关闭时,osmY 启动子加上逆变器装置使下游部分在这些细胞生长阶段“开启”,如图 6-6 所示。

FIGURE

图 6-6 部件级设计。 BGD 上游的 osmY 启动子导致稳定期产生香蕉气味。 osmY 启动子后跟 WGD 上游的反相器(尖端有圆圈的白色三角形),导致对数期冬青气味的产生。

因此,从理论上讲,iGEM 团队可能使用 osmY 启动子在稳定期表达香蕉气味,并使用 osmY 启动子加上反相器在对数期表达冬青气味,这是有道理的。但您可能会想:在滞后阶段不会也会出现冬青气味吗?那有用吗?那是问题吗?在这个滞后阶段是否存在足够的细胞来产生明显的气味?也许 iGEM 团队为冬青气味选择对数期启动子会更好。所有这些问题实际上都归结为:气味调节需要有多精确才能满足系统规格?

在与本章相关的 BioBuilder 实验室活动中,该设计决策是通过在工作台上收集气味和细胞生长数据来直接探索的。

黑匣子内部如果您搜索标准生物部件注册表,您会发现任意数量的逆变器设备。他们中的大多数使用转录抑制来实现非门逻辑。一般来说,这些反相器装置由几个简单的部分组成,首先是阻遏蛋白,例如 lambda 阻遏蛋白、lac 阻遏蛋白或 tet 阻遏蛋白,然后是可被编码的阻遏蛋白识别的阻抑启动子,例如 lambda 噬菌体启动子当使用 lambda 阻遏物时。如果将反相器装置放置在另一个启动子与其开放阅读框 (ORF) 之间,则上游启动子的激活现在会触发阻遏蛋白的表达,阻遏蛋白会识别指导 ORF 转录的下游启动子,从而阻断其表达。因此,系统的表达模式与没有逆变器时的行为完全相反。在我们在这里考虑的系统中,一个反相器被放置在 osmY 启动子和编码冬青气味产生蛋白的 ORF 之间。因此,当细胞处于静止期时,osmY 启动子是活跃的,因此它表达反相器。产生由反相器编码的阻遏蛋白,并且该阻遏蛋白与也包含在反相器中的下游启动子结合。

被抑制的启动子限制了反相器下游 ORF 的转录,ORF 是大肠杆菌系统中产生冬青气味的蛋白质。考虑相反的情况:当细胞处于对数生长期时,osmY启动子不活跃,不产生反相器编码的阻遏蛋白,而直接位于产生冬青气味的ORF上游的启动子是活跃的,因此冬青气味被生产。


FIGURE

图 6-7 逆变器拆箱。两个零件级设计的详细信息。固定相启动子 osmY 是每个装置的第一个组件。在香蕉生成系统中,它位于 BGD 的直接上游,因此在固定相会产生香蕉气味。在冬青气味产生装置中,osmY 启动子后面是一个反相器,它本身由一个阻遏物和一个指导 WGD 的启动子组成。当细胞不处于静止期时,这应该会产生冬青气味。


设计者可以使用许多这样的天然存在的抑制子-抑制性启动子对(如 lambda、lac 或 tet),每个启动子对的行为都略有不同。设计新系统时,选择使用哪种逆变器可能取决于许多因素。有时,可以(或不能)通过外部化学输入进一步调节的逆变器是理想的。例如,一种称为异丙基 β-D-1-硫代半乳糖苷 (IPTG) 的乳糖类似物可用于去抑制 lac 阻遏蛋白,因此,如果用该蛋白构建反相器,则可以通过添加来切换逻辑IPTG 到生长培养基中。有时,逆变器的选择将取决于系统中已内置的其他功能。例如,如果您已经在使用 lac 阻遏蛋白在您正在构建的细胞中执行其他一些遗传任务,那么对于反相器功能来说,它也可能不是一个糟糕的选择。最后,尽管所有逆变器都颠倒了输入/输出关系的逻辑,但它们可能会以不同的动力学(更快/更慢)和效率(稳定状态下 80% 与 95% 相比)来实现这一点,这可能是您设计的相关考虑因素。标准生物部件登记处试图描述不同逆变器在不同条件下的行为特征,但考虑到可以用它们构建多少种可能的系统,在合成生物学家能够使用之前,仍然需要大量的“尝试看看”方法。了解他们选择的逆变器是否适合相关系统。

最终设备和系统级编辑

FIGURE

对于水杨酸生成装置,iGEM 团队从模型植物拟南芥中发现了一条将分支酸(大肠杆菌中天然存在的化合物)转化为水杨酸的途径。同样,对于异戊醇生成装置,研究小组确定了酿酒酵母的一条途径,可将氨基酸亮氨酸转化为异戊醇。气味产生装置作用于水杨酸和异戊醇,将它们转化为气味好的化合物。水杨酸转化为水杨酸甲酯,有薄荷味,异戊醇转化为乙酸异戊酯,有香蕉味。

FIGURE

尽管目前该项目的规范似乎已经完成,但事实上,还有一个最终的设计选择需要指出。当按照本章开头所述集思广益时,iGEM 团队正在考虑要么添加一种好闻的气味,要么去除大肠杆菌中令人讨厌的气味。事实证明,产生香蕉和冬青气味的菌株仍然存在底盘自然臭味的问题。因此,团队决定再进行一项系统级设计更改。具体来说,它决定使用一种缺乏吲哚生产的大肠杆菌菌株。吲哚是造成大肠杆菌难闻气味的主要化合物之一。这种缺乏吲哚的底盘并不是完全没有臭味,也不是适合所有应用的完美底盘,但在这种情况下,使用气味较小的菌株使新的气味更容易检测到。

额外阅读和资源

  • Dixon, J.、Kuldell, N.、Voigt, C. 编辑。生物建筑:使用香蕉香味的细菌教授合成生物学。马萨诸塞州伯灵顿:学术出版社 2011 年;酶学方法;卷。 497:255-71。 [ISBN:978-0-12-385075-1]。
  • Madigan M.T.、Martinko J.M.、Parker J. 编辑。布洛克微生物学,Prentice-Hall,2000:135-62。 [ISBN:978-0321649638]。
  • 网站:细菌生长曲线
  • 网站:生物部件注册处
  • 网站:耶鲁大肠杆菌遗传库存中心:吲哚缺陷菌株

FIGURE

淡香水实验室

该实验室有效介绍了微生物生长和种群动态,以及表达基因所需的蛋白质和 DNA 序列(启动子、ORF、RNA 聚合酶等)。通过对两个竞争设计的分析,还强调了抽象的工程概念。最后,生物技术技能,如无菌技术、标准曲线和分光光度分析也融入到工作中。

设计选择

在我们对 Eau d’coli 项目的讨论中,我们看到 iGEM 团队做出了许多设计选择,包括以下内容:

  • 使用生长阶段作为输入,气味作为输出
  • 利用其他生物体自然产生的生物途径来产生香蕉和冬青的气味
  • 使气味产生装置(而不是前体产生装置)对生长阶段敏感
  • 使用稳定期启动子和遗传反相器,而不是稳定期启动子和对数期启动子

如果我们有时间,我们可以探索每一个设计选择。例如,我们可以用细胞生长阶段以外的环境线索作为输入进行实验。我们可以用颜色而不是气味作为系统的输出进行实验,或者我们可以测试如果前体生成设备对生长阶段而不是气味生成设备做出响应,系统将如何响应。不过,作为起点,我们将研究使用基因逆变器来控制系统。如果您有时间或有兴趣,前面列出的其他想法可能是很好的后续实验。

通过这个实验,我们将研究当香蕉气味发生装置由对数期启动子与稳定期启动子和逆变器控制时产生的生长和气味模式。预计这两种设计都会在原木阶段产生香蕉气味,但其中一种设计可能比另一种具有优势。例如,即使细胞开始进入稳定期,对数期启动子也可能保持轻微活性,而基于反相器的设计也可能在生长曲线的滞后期活跃。哪个会在对数阶段产生最强烈的香蕉气味是任何人的猜测,在合成生物学的计算机辅助设计工具成熟之前,评估这些系统设计的最佳方法是进行实验。希望通过表征每个系统的性能,我们能够将这些发现应用到未来的设计中。

实验问题

这项研究保留了 iGEM Eau d’coli 系统的一些元素,但在重要方面有所不同,有助于将实验问题集中在启动子和反相器的使用上。这里的实验使用了 iGEM 团队所做的相同底盘(缺乏吲哚)和相同的香蕉气味生成装置,包括该团队的 osmY 启动子。不过,与 iGEM 系统的一些重要区别包括:

  • 无冬青气味:我们正在研究不同启动子选择的相对有效性,因此不同气味之间的竞争不相关,并且香蕉气味更强烈,因此将其用于我们的测试是最有意义的。
  • 无前体生成装置:我们将前体化合物直接添加到我们的生长培养物中,这将使我们能够通过最小化前体生成装置引入的可能的变异性来专注于关于启动子选择的问题。

我们为本实验提供了四种不同的大肠杆菌菌株,如表 6-1 所示。


表 6-1 Eau That Smell 菌株描述

菌株#   质粒名称或注册表#   质粒描述
1-1 BBa_J45250 σ38 控制的启动子指导 ATF1、AmpR 的转录
1-2 BBa_J45990 σ38 控制的启动子加上 4 部分 tetR 反相器指导 ATF1、AmpR 的转录
1-3 BBa_J45200 σ70 控制的启动子指导 ATF1、AmpR 的转录
1-4 pUC18 AmpR

所有菌株均构建于氯霉素抗性、吲哚缺陷菌株 NB370(又名耶鲁配送中心的 YYC912)中,基因型为:F- Δ(argF-lac)169 λ- poxB15::lacZ::CmR IN( rrnD-rrnE)1 rph-1 tnaA5


菌株 1-1 作为香蕉气味的阳性对照,与 2006 年 iGEM 团队开发的在稳定期产生香蕉气味的菌株相同。 阳性对照应该是我们期望闻到香蕉味的菌株,与我们的具体实验问题无关。在本例中,我们使用的是一种在稳定期闻起来像香蕉的大肠杆菌菌株,并使用稳定期启动子。如果这种菌株有气味,我们可以确信我们的试剂和方案都正常运行,从而使我们能够消除不属于我们实验问题的可能变量。

菌株 1-4 作为阴性对照,因为它不携带产生香蕉气味所需的基因,因此预计不会闻起来像香蕉。在本实验中,我们的阴性对照菌株与用于制备其他菌株的底盘相同,但不包含香蕉气味产生装置。例如,我们可以使用该菌株来确保,简单地将前体化合物添加到生长的细胞中不会导致实验菌株产生香蕉气味。

阴性对照菌株是香蕉气味的阴性对照,因为预计它闻起来不像香蕉,但也可以将其视为细胞生长的阳性对照,因为预计它会生长。因为它缺乏香蕉气味产生装置,所以该菌株可能会被用来问:“含有香蕉气味产生装置的菌株会改变细胞生长速度吗?”这不是我们的主要实验问题,但对于考虑下一阶段的设计优化可能很重要。

最后两个菌株是实验菌株,它们代表我们要比较的两种设计:

  • 定相启动器+逆变器+香蕉味发生装置(菌株1-2)
  • 对数期启动子+香蕉气味发生装置(菌株1-3)

通过比较这两种看似等效的设计,我们可以提出实验问题:对数相启动子设计或固定相启动子加反相器设计是否能提供更好的对数相特定香蕉气味?

入门

您将在液体培养基中培养这四种菌株。在生长过程中的不同点,您将使用分光光度计测量 OD600 或使用 McFarland 浊度标度来测量细胞密度。通过绘制细胞密度随时间变化的图表,您将能够确定样品的生长阶段。对于每个细胞密度测量,您还将闻样品,记录香蕉气味相对于一组标准的强度,这些标准范围从无香蕉气味(我们称之为“气味标准 0”)到强烈的香蕉气味(我们称之为“气味标准 0”) “气味标准7级。”标准品是使用不同浓度的香蕉提取物制备的,其化学名称为乙酸异戊酯。香蕉标准品的范围旨在涵盖您将从细菌培养物中检测到的预期气味。通过将培养物的气味与特定标准相匹配,您可以了解所产生的乙酸异戊酯的浓度。这些气味测量将使您能够确定哪种启动子构建体可以更好地控制作为生长阶段函数的香蕉气味。

前期准备

准备香蕉气味标准品。 香蕉提取物的化学名称为乙酸异戊酯。您可以按照表 6-2 中所示制备气味标准品,使用每个标准品的 50 毫升锥形管将提取物添加到水中。您可以使用蒸馏水或瓶装水来制作标准品,并且可以使用试管侧面的标记来估算最终的 25 毫升体积。样品会随着时间的推移而变质,但在室温下可保存大约一个月。


表 6-2 如何准备气味标准品

标准   浓度 (%)   H_2 O 中的提取物(最终体积 25 ml)
0 0 0
1 0.1 25微升
2 0.25 62.5 微升
3 0.5 125 微升
4 1 250 微升
5 2.5 625 微升
6 5 1.25 毫升

香蕉提取物是一种油,不溶于水。 然而,浓度较低,只要在闻味前摇匀标准品,悬浮液就足够了。

准备浊度标准品。 表 6-3 中列出的 MacFarland 浊度标准品为您在无法使用分光光度计的情况下运行实验方案的情况提供了另一种测量细胞密度的方法。该方法使用1% BaCl_2 在1% H_2 SO_4 中的悬浮液,其在视觉上与在液体培养物中生长的大肠杆菌密度的悬浮液类似。这些浊度标准品可以在实验室之前准备好。浊度标准品可以制成任意体积,但应悬浮并等分到带盖的小玻璃管中。试管的尺寸和放入其中的标准品的体积并不重要。


表 6-3 麦克法兰浊度标准

浊度标度   OD600   1% BaCl_2 /1% H_2 SO_4 (mL)
0 0 0.0/10
1 0.1 1.05/9.95
2 0.2 0.1/9.9
3 0.4 0.2/9.8
4 0.5 0.3/9.7
5 0.65 0.4/9.6
6 0.85 0.5/9.5
7 1.0 0.6/9.4

要测量细菌样品的浊度,您可以将少量细菌样品转移到与浊度标准所用尺寸相同的玻璃管中。通过识别哪个浊度标准相对模糊放置在标准管后面的深色标记来确定浊度。

经验法则:使用 1 OD600 ~ 1 x 10^9 cells/ml 将浊度测量值转换为细胞密度。

实验前程序

第 1 天:将菌株从刺中划到平板上。 本实验的细菌菌株已经携带待测试的质粒 DNA 编码遗传电路。这些质粒还赋予抗生素氨苄青霉素抗性。细菌将以“刺”或“斜”的形式到达,即在倾斜介质上装有少量细菌的试管。

  1. 使用无菌牙签或接种环将细菌划线到培养皿上。从牙签或环上的刺中收集少量细菌,然后将细胞转移到含有 Luria Broth (LB) 琼脂和 100 μg/ml 氨苄青霉素的培养皿中。
  2. 对剩余的刺穿样品重复上述步骤,将每个样品划线到不同的培养皿上。
  3. 将这些培养皿培养基面朝上放入 37°C 培养箱中过夜。如果没有培养箱,室温培养两晚通常会产生相同的结果。

第 2 天:细菌菌株的液体培养过夜。 为了为本实验室的实验部分制作起始培养物,每个菌株的 3 ml 液体培养物在 LB+氨苄青霉素中于 37°C 培养过夜。试管中氨苄西林的最终浓度应为 100 μg/ml。 3 ml 发酵剂培养物足以完成后续方案。使用无菌接种环或牙签或移液管尖端,将细菌菌落从其中一个培养皿转移到含有 3 ml LB 和 3 μl 氨苄青霉素的大无菌培养管中。对于每个学生或学生团队必须培养的每种菌株来说,这个体积绰绰有余:

  1. 对您要接种的每种菌株重复上述步骤。
  2. 将培养管放入滚轮中,37°C 培养箱过夜。确保彼此平衡管子,以最大程度地减少滚轮上的压力。
  3. 培养物在冰箱中保存至少一周保持稳定和活性。如果你以这种方式储存它们,预计它们在你进行亚培养的那天需要更长的时间才能开始生长;预计大约需要 3 小时,而不是 1.5 小时。

如果没有可用的滚轮或培养箱,您可以将每种起始培养物的体积增加至 10 ml LB+amp,并在室温下使用搅拌棒在小锥形瓶中培养样品。它们应该以这种方式生长至少 24 小时才能达到饱和。

实验室协议

这是该协议的较短版本,强调数据分析而不是数据收集。 BioBuilder 网站还提供了更长版本的协议,强调生长曲线数据收集。在这里,在任何数据收集前一天建立大量细菌培养物。第二天即可准备好样品,以便在单个实验室周期内收集数据。

该协议假设每个人都会在三个时间点测量所有四种细菌培养物,并且将共享大量细菌培养物。假设每组只需要一个时间点,75 毫升培养物应足以容纳最多 12 个实验室组。

在收集数据的前一天,执行以下操作:

  1. 使用以下材料准备生长培养基:
  • 300 毫升 LB
  • 300 μl 氨苄西林(终浓度 100 ug/ml)
  • 250 μl 异戊醇
  1. 通过旋转瓶子来混合该储备生长溶液。
  2. 如果您将使用分光光度计收集数据,请留出 2 ml 该混合物作为分光光度计的空白。将这等份培养基存放在冰箱中。
  3. 将 75 ml 生长培养基移至 125 ml 无菌锥形瓶中,然后添加来自过夜起始培养物之一的 2 ml 细菌,例如菌株 1-1。
  4. 对于每个过夜培养物,重复将 2 ml 细菌添加到 Erlen meyer 烧瓶中的 75 ml 生长培养基中。
  5. 给四个 50 ml 锥形管贴上标签:每个管贴上 T(LAG) 标签并注明菌株(例如 1-1)。
  6. 从培养物 1-1 中取出 25 ml,放入适当的锥形管中并储存在冰箱中。这将作为您将在数据收集日阅读的滞后期样本。
  7. 对每种培养物重复上一步。
  8. 用箔纸盖住锥形瓶,并在搅拌板上轻轻搅拌 6-8 小时。这是在室温下完成的。记录每种文化开始旋转的时间。请注意,您还可以在 37°C 下培养样品,在这种情况下,到达下一个生长期所需的时间会更短,约为 4-5 小时。
  9. 给四个 50 ml 锥形管贴上标签:每个管贴上 T(LOG) 标签并标明细菌菌株(例如 1-1)。记录自培养物开始搅拌以来的分钟数。
  10. 从培养物 1-1 中取出 25 ml,放入锥形管中并储存在冰箱中。这将作为您将在数据收集日阅读的日志阶段示例。
  11. 对每种培养物重复上一步。
  12. 让剩余的细菌培养物在室温或 37°C 下在搅拌板上孵育过夜(如果您一直以这种方式培养它们)。这些将作为您将在数据收集日读取的固定相样本。

此时,您可以将样品在冰箱中保存一到两周。

数据收集:使用分光光度计测量浊度

  1. 如果细菌已沉淀在 50 ml 锥形管的底部,则涡旋或翻转每个管。
  2. 从每个滞后样品中取出 2 ml,读取每个样品的密度。如果您正在收集所有四个滞后期样品的数据,您现在应该有五个小试管,其中四个装有细菌样品,一个用于空白分光光度计。
  3. 准备分光光度计,将其设置为 OD600。
  4. 读取空白并将%吸光度调整为零。
  5. 读取细菌样品的浊度并记录吸光度。
  6. 计算细菌数量:1 OD600 单位 = 1 x 10^9 细菌。
  7. 对对数期和稳定期细菌样本重复此数据收集。

数据收集:使用浊度标准的浊度

  1. 如果细菌聚集在 50 ml 锥形管的底部,则涡旋或翻转每个管。
  2. 从每个滞后样品中取出 2 ml,读取每个样品的密度。如果您正在收集所有四个滞后期样本的数据,那么您现在应该将样本放在四个小试管中。这些管应该与装有浊度标准的管相匹配。
  3. 将样品和浊度标准品放在试管架上,以便您可以从侧面查看液体样品。在空白索引卡或纸张上使用记号笔画两条粗黑线。这些线应该在标准的高度范围内。
  4. 将带有平行黑线的白卡放在管后面。
  5. 通过寻找与背景卡上的黑线最相似的标准品,将细菌培养物与标准品进行比较。
  6. 使用表 6-3 将浊度标准品转换为 OD600 值,然后使用 1 OD600 单位 = ~ 1 x 10^9 cells/ml 的简单转换系数计算细胞密度。
  7. 使用对数和固定相细菌样本重复此数据收集。

资料收集:香蕉味

  1. 如果细菌聚集在 50 ml 锥形管的底部,则涡旋或翻转每个管。将管子加热至室温或 37° 将使气味更容易被察觉。
  2. 闻 50 ml 锥形管是否有香蕉气味,并将该气味与香蕉提取物标准品进行比较。嗅探前一定要摇匀标准品。记录您的数据。
  3. 对对数相样本和固定相样本重复上述步骤。

当管子打开时,香蕉气味会消散。尽可能保持管子关闭,如果需要,摇动它们以恢复气味。

FIGURE

FIGURE

Read More

2024-04-09
BioBuilder 实验室简介

第5章 BioBuilder 实验室简介

生物工程与合成生物学工具包

FIGURE

工程师的“设计-构建-测试”过程类似于“假设-测试-分析”的科学方法。尽管这些过程通常被表现为线性工作,从工程师的“设计”和科学家的“假设”开始,但实际上它们是可以在周期中的任何点开始的迭代工作。因此,BioBuilder 实践活动有几个进入设计-构建-测试范式的切入点,旨在产生更科学的假设、测试和分析。通过任何 BioBuilder 活动,您可以在评估合理设计的生命系统时探索科学和工程方法之间的联系。也许您想要追求从我们提供的起始材料开始的科学探索选项,或者您可能想要设计比我们提供的系统更可靠或满足新需求的新系统。无论哪种方式,BioBuilder 实验室中科学和工程方法的简短预览旨在将这些努力纳入每个领域的实践中。

FIGURE

传统的解释通过描述设计阶段来接近工程,通过描述假设来接近科学,所以让我们花点时间考虑一下这些出发点是如何运作的。当有足够的基础知识从头开始解决问题时,设计优先的工程就成为可能。大多数人在设想工程过程时都会想到这种正向工程方法。在许多方面,这是最合乎逻辑和最令人满意的开始方式,因为这意味着已经对系统有很多了解,因此可以对新设计的系统的行为进行建模和模拟。计算机辅助设计在这方面已经改变了游戏规则。例如,波音 777 是第一架完全在计算机上成功设计的飞机。这架飞机由 238 个工程师团队组成,每个团队都有自己的专业领域和职责。通过分工并将复杂的挑战抽象为可管理的任务,飞机设计成功。当原型最终构建并测试时,它不仅满足了所有初始系统要求,而且性能甚至比预期更好。如果没有对物理、建筑材料和大气条件的深刻科学理解,这种设计优先的成功就不可能实现。

FIGURE

不幸的是,我们距离理解生物学如何在如此详细的层面上发挥作用还有很长的路要走。目前还不可能告诉计算机“让我一个细胞能够检测砷并在水平不安全时变红”,并让它吐出在生命系统中执行此行为所需的 ACTG 字符串。尽管如此,仅仅因为我们不知道一切是如何运作的,并不意味着合成生物学家不应该尝试进行正向工程。例如,我们确实对 DNA 如何组织成功能单元了解很多。实际上,这只是意味着合成生物学家在对生物系统进行正向工程时经常会构建特定设计的许多版本。

逆向工程是在测试阶段进入设计-构建-测试周期的一个例子。为了复制或修改设计的目的,可以将预先存在的对象分解成组件。我们要感谢逆向工程带来的一切,从山寨设计师手提包到第一次世界大战期间首次用于运输燃料的标志性塑料罐。塑料罐是在德国发明的,被认为比以前的设计有了巨大的改进。英国人在战场上发现废弃的罐头并对他们进行逆向工程后,“重新发明”了这些容器以供自己使用。目前,合成生物学在很大程度上依赖于逆向工程。许多设计的灵感(即使不是完全采用)也来自自然界中发现的复杂系统。为了使用和修改从生物体中取出的部件或设备,合成生物学家必须首先确定在另一种细胞类型中重建它所需的最小成分,然后需要进行广泛的测试以确认其行为符合预期。

FIGURE

设计-构建-测试周期中最不直观的切入点是构建。想象一下,掷骰子来决定在你正在建造的房子中放置下一块砖的位置,然后希望你最终得到的结构不仅可以工作,而且可以在下一轮周期中重建和重新设计。这似乎不是一种非常聪明的设计方式。但有趣的是,这正是进化构建生命的方式。新物种从 DNA 序列的随机改组中出现,成功的版本进入下一轮繁殖。大自然找到了一种将“构建-测试”步骤结合在一起的方法。

FIGURE

在合成生物学中,构建过程本身可以相对简单,类似于组装宜家家具,也可以更加不可预测,例如尝试不熟悉的食谱或在没有食谱的情况下烹饪!构建设计和复制设计的效率在很大程度上取决于说明的详细程度以及起始材料的质量。当起始材料存在变化或对特定系统了解较少时,构建阶段往往更加不可靠或不可预测。

就像良好的科学实验一样,工程的成功往往会带来更多的问题和挑战。工程师可能想知道他们的新系统有多强大。原型在重复使用后还能继续发挥作用吗?它能在多种条件下发挥作用吗?当原型不起作用时,分析可能会更加复杂。原始设计的哪些组件有效?故障是否发生在零件、设备或系统层面?深思熟虑的数据分析是良好科学和良好工程的基础。初步结果为下一轮设计-构建-测试或假设-测试-分析提供信息。循环以更好的信息重新开始,并重复直到工作完成。 BioBuilder 的研究旨在介绍工程生物学的复杂性和可能性。

Read More

2023-11-27
Deploy Magento


Debian 12

In [ ]:
sudo apt install docker.io
In [ ]:
sudo usermod -aG docker saintway
In [ ]:
sudo service docker start
In [ ]:
sudo service docker status
In [ ]:
docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
Digest: sha256:1ee299bf9eb8d2218fcb4fad666a090c92caef48ce524e6edce35f2e2d55170d
Status: Image is up to date for mysql:latest
docker.io/library/mysql:latest
In [ ]:
docker run --name mobaichi -p 127.0.0.1:3306:3306 -e MYSQL_ROOT_PASSWORD=mobaichi -d mysql:8.0-debian
CREATE DATABASE mobaichi;
CREATE USER 'ekp'@'172.17.0.1' IDENTIFIED BY 'ekp';
GRANT ALL PRIVILEGES ON mobaichi.* TO 'ekp'@'172.17.0.1';
FLUSH PRIVILEGES;
EXIT;

Debian 11

In [ ]:
sudo apt install wget
In [ ]:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb
In [ ]:
sudo apt install lsb-release
In [ ]:
sudo dpkg -i ~/mysql-apt-config_0.8.26-1_all.deb
In [ ]:
sudo apt update
In [ ]:
sudo apt install mysql-server
In [ ]:
import random
import string
''.join(
    random.choices(string.ascii_letters + string.digits, k=8)
)

# MySQL
# KQaJ6rYR
CREATE DATABASE mobaichi;
CREATE USER 'ekp'@'localhost' IDENTIFIED BY 'ekp';
GRANT ALL PRIVILEGES ON mobaichi.* TO 'ekp'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Ubuntu 22

In [ ]:
sudo apt install mysql-server
In [ ]:
mysql --version
In [ ]:
sudo netstat -tunpl | grep mysql
In [ ]:
sudo service mysql status
CREATE DATABASE mobaichi;
CREATE USER 'ekp'@'localhost' IDENTIFIED BY 'ekp';
GRANT ALL PRIVILEGES ON mobaichi.* TO 'ekp'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Debian 11

In [ ]:
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
In [ ]:
sudo apt update
In [ ]:
sudo apt install php8.2
In [ ]:
php -v
PHP 8.2.12 (cli) (built: Oct 27 2023 13:01:32) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.12, Copyright (c), by Zend Technologies
In [ ]:
php --ini
Configuration File (php.ini) Path: /etc/php/8.2/cli
Loaded Configuration File:         /etc/php/8.2/cli/php.ini
Scan for additional .ini files in: /etc/php/8.2/cli/conf.d
Additional .ini files parsed:      /etc/php/8.2/cli/conf.d/10-mysqlnd.ini,
/etc/php/8.2/cli/conf.d/10-opcache.ini,
/etc/php/8.2/cli/conf.d/10-pdo.ini,
/etc/php/8.2/cli/conf.d/15-xml.ini,
/etc/php/8.2/cli/conf.d/20-bcmath.ini,
/etc/php/8.2/cli/conf.d/20-calendar.ini,
/etc/php/8.2/cli/conf.d/20-ctype.ini,
/etc/php/8.2/cli/conf.d/20-curl.ini,
/etc/php/8.2/cli/conf.d/20-dom.ini,
/etc/php/8.2/cli/conf.d/20-exif.ini,
/etc/php/8.2/cli/conf.d/20-ffi.ini,
/etc/php/8.2/cli/conf.d/20-fileinfo.ini,
/etc/php/8.2/cli/conf.d/20-ftp.ini,
/etc/php/8.2/cli/conf.d/20-gd.ini,
/etc/php/8.2/cli/conf.d/20-gettext.ini,
/etc/php/8.2/cli/conf.d/20-iconv.ini,
/etc/php/8.2/cli/conf.d/20-intl.ini,
/etc/php/8.2/cli/conf.d/20-mbstring.ini,
/etc/php/8.2/cli/conf.d/20-mysqli.ini,
/etc/php/8.2/cli/conf.d/20-pdo_mysql.ini,
/etc/php/8.2/cli/conf.d/20-phar.ini,
/etc/php/8.2/cli/conf.d/20-posix.ini,
/etc/php/8.2/cli/conf.d/20-readline.ini,
/etc/php/8.2/cli/conf.d/20-shmop.ini,
/etc/php/8.2/cli/conf.d/20-simplexml.ini,
/etc/php/8.2/cli/conf.d/20-soap.ini,
/etc/php/8.2/cli/conf.d/20-sockets.ini,
/etc/php/8.2/cli/conf.d/20-sysvmsg.ini,
/etc/php/8.2/cli/conf.d/20-sysvsem.ini,
/etc/php/8.2/cli/conf.d/20-sysvshm.ini,
/etc/php/8.2/cli/conf.d/20-tokenizer.ini,
/etc/php/8.2/cli/conf.d/20-xmlreader.ini,
/etc/php/8.2/cli/conf.d/20-xmlwriter.ini,
/etc/php/8.2/cli/conf.d/20-xsl.ini,
/etc/php/8.2/cli/conf.d/20-zip.ini

In [ ]:
php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
random
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

In [ ]:
sudo apt install php8.2-bcmath
sudo apt install php8.2-curl
sudo apt install php8.2-dom
sudo apt install php8.2-gd
sudo apt install php8.2-intl
sudo apt install php8.2-mysql
sudo apt install php8.2-simplexml
sudo apt install php8.2-soap
sudo apt install php8.2-xsl
sudo apt install php8.2-zip
In [ ]:
sudo apt install php-mbstring
In [ ]:
composer global require psy/psysh
In [ ]:
~/.config/composer/vendor/bin/psysh

zmq

In [ ]:
git clone https://github.com/zeromq/php-zmq.git
In [ ]:
cd ~/php-zmq && phpize && ./configure
cd ~/php-zmq && make
cd ~/php-zmq && sudo make install

jupyter-php-kernel

In [ ]:
git clone https://github.com/amemoba/jupyter-php-kernel.git ~/jupyter-php-kernel
In [ ]:
cd ~/jupyter-php-kernel && composer install
In [ ]:
git clone https://github.com/amemoba/jupyter-php-install.git ~/jupyter-php-install
In [ ]:
cd ~/jupyter-php-install && composer install
In [ ]:
cd ~/jupyter-php-install && php src/EntryPoint/main.php -v install
In [ ]:
sudo apt install docker.io
In [ ]:
sudo usermod -aG docker saintway
In [ ]:
docker network create elastic
0c4dc0164ede8ec461c44d0e10dc522d1fea16de38298432c3ab1892c026869b
In [ ]:
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.10.2
In [ ]:
docker run --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -t docker.elastic.co/elasticsearch/elasticsearch:8.10.2
In [ ]:
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.13
7.17.13: Pulling from elasticsearch/elasticsearch

5e7b73a4: Pulling fs layer 
133c4766: Pulling fs layer 
ff004a8c: Pulling fs layer 
2bc75041: Pulling fs layer 
4cd7d8ab: Pulling fs layer 
59d44b65: Pulling fs layer 
e327c328: Pulling fs layer 
54e541f7: Pulling fs layer 
c4728702: Pulling fs layer 
Digest: sha256:67b2d720621da7092ef18fe5ccca2eeb7b863b55d4bcee30108224520aebd92c
Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:7.17.13
docker.elastic.co/elasticsearch/elasticsearch:7.17.13
In [ ]:
docker run --name elasticsearch --net elastic -p 127.0.0.1:9200:9200 -p 127.0.0.1:9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.13
In [ ]:
curl -X GET http://localhost:9200/
In [ ]:
docker start elasticsearch
docker logs elasticsearch
In [ ]:
sudo apt install apache2
In [ ]:
sudo apt install composer
In [ ]:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition ~/magento2
In [ ]:
git clone https://github.com/magento/magento2 ~/magento2
In [ ]:
cd ~/magento2 && git branch
In [ ]:
cd ~/magento2 && git fetch --tags
remote: Enumerating objects: 1173, done.        
remote: Counting objects: 100% (1173/1173), done.        
remote: Compressing objects: 100% (450/450), done.        
remote: Total 1173 (delta 661), reused 1065 (delta 638), pack-reused 0        
Receiving objects: 100% (1173/1173), 388.05 KiB | 3.66 MiB/s, done.
Resolving deltas: 100% (661/661), completed with 46 local objects.
From https://github.com/magento/magento2
 * [new tag]                 2.4.4-p6    -> 2.4.4-p6
 * [new tag]                 2.4.5-p5    -> 2.4.5-p5
 * [new tag]                 2.4.6-p3    -> 2.4.6-p3
 * [new tag]                 2.4.7-beta2 -> 2.4.7-beta2
In [ ]:
cd ~/magento2 && git checkout 2.4.6-p3
Previous HEAD position was 37861a4025e Magento Release 2.4.6-p2
HEAD is now at 6cc0d28cf66 Magento Release 2.4.6-p3
In [ ]:
cd ~/magento2 && composer install
In [ ]:
import random
import string
''.join(
    random.choices(string.ascii_lowercase + string.digits, k=7)
)

# --admin-firstname=i \
# --admin-lastname=sei \
# --admin-email=sei@ekp.co.jp \
# --admin-user=ekp \
# --admin-password=5b0gs9x \
In [ ]:
cd ~/magento2/ && yes | bin/magento setup:uninstall
In [ ]:
cd ~/magento2/ && bin/magento setup:install \
--base-url=http://jhub.name:8890 \
--db-host=127.0.0.1 \
--db-name=mobaichi \
--db-user=ekp \
--db-password=ekp \
--admin-firstname=i \
--admin-lastname=sei \
--admin-email=sei@ekp.co.jp \
--admin-user=ekp \
--admin-password=5b0gs9x \
--language=ja_JP \
--currency=JPY \
--timezone=Asia/Tokyo \
--use-rewrites=1 \
--search-engine=elasticsearch7 \
--elasticsearch-host=localhost \
--elasticsearch-port=9200 \
--elasticsearch-index-prefix=mobaichi \
--elasticsearch-timeout=15
Starting Magento installation:
File permissions check...
[Progress: 1 / 851]
Required extensions check...
[Progress: 2 / 851]
Enabling Maintenance Mode...
[Progress: 3 / 851]
Installing deployment configuration...
[Progress: 4 / 851]
Installing database schema:
Schema creation/updates:
Module 'Magento_AdminAnalytics':
[Progress: 5 / 851]
Module 'Magento_Store':
[Progress: 6 / 851]
Module 'Magento_AdvancedPricingImportExport':
[Progress: 7 / 851]
Module 'Magento_Directory':
[Progress: 8 / 851]
Module 'Magento_Amqp':
[Progress: 9 / 851]
Module 'Magento_Config':
[Progress: 10 / 851]
Module 'Magento_Theme':
[Progress: 11 / 851]
Module 'Magento_Backend':
[Progress: 12 / 851]
Module 'Magento_Variable':
[Progress: 13 / 851]
Module 'Magento_Search':
[Progress: 14 / 851]
Module 'Magento_Backup':
[Progress: 15 / 851]
Module 'Magento_Eav':
[Progress: 16 / 851]
Module 'Magento_Customer':
[Progress: 17 / 851]
Module 'Magento_BundleImportExport':
[Progress: 18 / 851]
Module 'Magento_CacheInvalidate':
[Progress: 19 / 851]
Module 'Magento_AdminNotification':
[Progress: 20 / 851]
Module 'Magento_Indexer':
[Progress: 21 / 851]
Module 'Magento_Cms':
[Progress: 22 / 851]
Module 'Magento_Security':
[Progress: 23 / 851]
Module 'Magento_Authorization':
[Progress: 24 / 851]
Module 'Magento_GraphQl':
[Progress: 25 / 851]
Module 'Magento_StoreGraphQl':
[Progress: 26 / 851]
Module 'Magento_CatalogImportExport':
[Progress: 27 / 851]
Module 'Magento_Catalog':
[Progress: 28 / 851]
Module 'Magento_CatalogInventory':
[Progress: 29 / 851]
Module 'Magento_Rule':
[Progress: 30 / 851]
Module 'Magento_Payment':
[Progress: 31 / 851]
Module 'Magento_CatalogRuleGraphQl':
[Progress: 32 / 851]
Module 'Magento_CatalogRule':
[Progress: 33 / 851]
Module 'Magento_CatalogUrlRewrite':
[Progress: 34 / 851]
Module 'Magento_EavGraphQl':
[Progress: 35 / 851]
Module 'Magento_Widget':
[Progress: 36 / 851]
Module 'Magento_Quote':
[Progress: 37 / 851]
Module 'Magento_SalesSequence':
[Progress: 38 / 851]
Module 'Magento_CheckoutAgreementsGraphQl':
[Progress: 39 / 851]
Module 'Magento_Bundle':
[Progress: 40 / 851]
Module 'Magento_CmsGraphQl':
[Progress: 41 / 851]
Module 'Magento_CmsUrlRewrite':
[Progress: 42 / 851]
Module 'Magento_CmsUrlRewriteGraphQl':
[Progress: 43 / 851]
Module 'Magento_CatalogGraphQl':
[Progress: 44 / 851]
Module 'Magento_User':
[Progress: 45 / 851]
Module 'Magento_Msrp':
[Progress: 46 / 851]
Module 'Magento_Sales':
[Progress: 47 / 851]
Module 'Magento_QuoteGraphQl':
[Progress: 48 / 851]
Module 'Magento_Checkout':
[Progress: 49 / 851]
Module 'Magento_Contact':
[Progress: 50 / 851]
Module 'Magento_Cookie':
[Progress: 51 / 851]
Module 'Magento_Cron':
[Progress: 52 / 851]
Module 'Magento_Csp':
[Progress: 53 / 851]
Module 'Magento_CurrencySymbol':
[Progress: 54 / 851]
Module 'Magento_CatalogCustomerGraphQl':
[Progress: 55 / 851]
Module 'Magento_Integration':
[Progress: 56 / 851]
Module 'Magento_Downloadable':
[Progress: 57 / 851]
Module 'Magento_CustomerGraphQl':
[Progress: 58 / 851]
Module 'Magento_CustomerImportExport':
[Progress: 59 / 851]
Module 'Magento_Deploy':
[Progress: 60 / 851]
Module 'Magento_Developer':
[Progress: 61 / 851]
Module 'Magento_Dhl':
[Progress: 62 / 851]
Module 'Magento_AsynchronousOperations':
[Progress: 63 / 851]
Module 'Magento_DirectoryGraphQl':
[Progress: 64 / 851]
Module 'Magento_DownloadableGraphQl':
[Progress: 65 / 851]
Module 'Magento_CustomerDownloadableGraphQl':
[Progress: 66 / 851]
Module 'Magento_ImportExport':
[Progress: 67 / 851]
Module 'Magento_Captcha':
[Progress: 68 / 851]
Module 'Magento_BundleGraphQl':
[Progress: 69 / 851]
Module 'Magento_CatalogSearch':
[Progress: 70 / 851]
Module 'Magento_AdvancedSearch':
[Progress: 71 / 851]
Module 'Magento_Email':
[Progress: 72 / 851]
Module 'Magento_EncryptionKey':
[Progress: 73 / 851]
Module 'Magento_Fedex':
[Progress: 74 / 851]
Module 'Magento_GiftMessage':
[Progress: 75 / 851]
Module 'Magento_GiftMessageGraphQl':
[Progress: 76 / 851]
Module 'Magento_GoogleAdwords':
[Progress: 77 / 851]
Module 'Magento_GoogleAnalytics':
[Progress: 78 / 851]
Module 'Magento_GoogleGtag':
[Progress: 79 / 851]
Module 'Magento_Ui':
[Progress: 80 / 851]
Module 'Magento_CatalogCmsGraphQl':
[Progress: 81 / 851]
Module 'Magento_PageCache':
[Progress: 82 / 851]
Module 'Magento_GroupedProduct':
[Progress: 83 / 851]
Module 'Magento_GroupedImportExport':
[Progress: 84 / 851]
Module 'Magento_GroupedCatalogInventory':
[Progress: 85 / 851]
Module 'Magento_GroupedProductGraphQl':
[Progress: 86 / 851]
Module 'Magento_DownloadableImportExport':
[Progress: 87 / 851]
Module 'Magento_ConfigurableProduct':
[Progress: 88 / 851]
Module 'Magento_InstantPurchase':
[Progress: 89 / 851]
Module 'Magento_Analytics':
[Progress: 90 / 851]
Module 'Magento_JwtFrameworkAdapter':
[Progress: 91 / 851]
Module 'Magento_JwtUserToken':
[Progress: 92 / 851]
Module 'Magento_LayeredNavigation':
[Progress: 93 / 851]
Module 'Magento_LoginAsCustomer':
[Progress: 94 / 851]
Module 'Magento_LoginAsCustomerAdminUi':
[Progress: 95 / 851]
Module 'Magento_LoginAsCustomerApi':
[Progress: 96 / 851]
Module 'Magento_LoginAsCustomerAssistance':
[Progress: 97 / 851]
Module 'Magento_LoginAsCustomerFrontendUi':
[Progress: 98 / 851]
Module 'Magento_LoginAsCustomerGraphQl':
[Progress: 99 / 851]
Module 'Magento_LoginAsCustomerLog':
[Progress: 100 / 851]
Module 'Magento_LoginAsCustomerPageCache':
[Progress: 101 / 851]
Module 'Magento_LoginAsCustomerQuote':
[Progress: 102 / 851]
Module 'Magento_LoginAsCustomerSales':
[Progress: 103 / 851]
Module 'Magento_Marketplace':
[Progress: 104 / 851]
Module 'Magento_MediaContent':
[Progress: 105 / 851]
Module 'Magento_MediaContentApi':
[Progress: 106 / 851]
Module 'Magento_MediaContentCatalog':
[Progress: 107 / 851]
Module 'Magento_MediaContentCms':
[Progress: 108 / 851]
Module 'Magento_MediaContentSynchronization':
[Progress: 109 / 851]
Module 'Magento_MediaContentSynchronizationApi':
[Progress: 110 / 851]
Module 'Magento_MediaContentSynchronizationCatalog':
[Progress: 111 / 851]
Module 'Magento_MediaContentSynchronizationCms':
[Progress: 112 / 851]
Module 'Magento_MediaGallery':
[Progress: 113 / 851]
Module 'Magento_MediaGalleryApi':
[Progress: 114 / 851]
Module 'Magento_MediaGalleryCatalog':
[Progress: 115 / 851]
Module 'Magento_MediaGalleryCatalogIntegration':
[Progress: 116 / 851]
Module 'Magento_MediaGalleryCatalogUi':
[Progress: 117 / 851]
Module 'Magento_MediaGalleryCmsUi':
[Progress: 118 / 851]
Module 'Magento_MediaGalleryIntegration':
[Progress: 119 / 851]
Module 'Magento_MediaGalleryMetadata':
[Progress: 120 / 851]
Module 'Magento_MediaGalleryMetadataApi':
[Progress: 121 / 851]
Module 'Magento_MediaGalleryRenditions':
[Progress: 122 / 851]
Module 'Magento_MediaGalleryRenditionsApi':
[Progress: 123 / 851]
Module 'Magento_MediaGallerySynchronization':
[Progress: 124 / 851]
Module 'Magento_MediaGallerySynchronizationApi':
[Progress: 125 / 851]
Module 'Magento_MediaGallerySynchronizationMetadata':
[Progress: 126 / 851]
Module 'Magento_MediaGalleryUi':
[Progress: 127 / 851]
Module 'Magento_MediaGalleryUiApi':
[Progress: 128 / 851]
Module 'Magento_Robots':
[Progress: 129 / 851]
Module 'Magento_MessageQueue':
[Progress: 130 / 851]
Module 'Magento_CatalogRuleConfigurable':
[Progress: 131 / 851]
Module 'Magento_MsrpConfigurableProduct':
[Progress: 132 / 851]
Module 'Magento_MsrpGroupedProduct':
[Progress: 133 / 851]
Module 'Magento_Multishipping':
[Progress: 134 / 851]
Module 'Magento_MysqlMq':
[Progress: 135 / 851]
Module 'Magento_NewRelicReporting':
[Progress: 136 / 851]
Module 'Magento_Newsletter':
[Progress: 137 / 851]
Module 'Magento_NewsletterGraphQl':
[Progress: 138 / 851]
Module 'Magento_OfflinePayments':
[Progress: 139 / 851]
Module 'Magento_SalesRule':
[Progress: 140 / 851]
Module 'Magento_Elasticsearch':
[Progress: 141 / 851]
Module 'Magento_GraphQlCache':
[Progress: 142 / 851]
Module 'Magento_CardinalCommerce':
[Progress: 143 / 851]
Module 'Magento_PaymentGraphQl':
[Progress: 144 / 851]
Module 'Magento_Vault':
[Progress: 145 / 851]
Module 'Magento_Paypal':
[Progress: 146 / 851]
Module 'Magento_PaypalGraphQl':
[Progress: 147 / 851]
Module 'Magento_Persistent':
[Progress: 148 / 851]
Module 'Magento_ProductAlert':
[Progress: 149 / 851]
Module 'Magento_ProductVideo':
[Progress: 150 / 851]
Module 'Magento_CheckoutAgreements':
[Progress: 151 / 851]
Module 'Magento_QuoteAnalytics':
[Progress: 152 / 851]
Module 'Magento_QuoteBundleOptions':
[Progress: 153 / 851]
Module 'Magento_QuoteConfigurableOptions':
[Progress: 154 / 851]
Module 'Magento_QuoteDownloadableLinks':
[Progress: 155 / 851]
Module 'Magento_ConfigurableProductGraphQl':
[Progress: 156 / 851]
Module 'Magento_RelatedProductGraphQl':
[Progress: 157 / 851]
Module 'Magento_ReleaseNotification':
[Progress: 158 / 851]
Module 'Magento_Sitemap':
[Progress: 159 / 851]
Module 'Magento_Reports':
[Progress: 160 / 851]
Module 'Magento_RequireJs':
[Progress: 161 / 851]
Module 'Magento_Review':
[Progress: 162 / 851]
Module 'Magento_ReviewAnalytics':
[Progress: 163 / 851]
Module 'Magento_ReviewGraphQl':
[Progress: 164 / 851]
Module 'Magento_MediaStorage':
[Progress: 165 / 851]
Module 'Magento_Rss':
[Progress: 166 / 851]
Module 'Magento_Elasticsearch7':
[Progress: 167 / 851]
Module 'Magento_ConfigurableProductSales':
[Progress: 168 / 851]
Module 'Magento_SalesAnalytics':
[Progress: 169 / 851]
Module 'Magento_SalesGraphQl':
[Progress: 170 / 851]
Module 'Magento_SalesInventory':
[Progress: 171 / 851]
Module 'Magento_OfflineShipping':
[Progress: 172 / 851]
Module 'Magento_ConfigurableImportExport':
[Progress: 173 / 851]
Module 'Magento_UrlRewrite':
[Progress: 174 / 851]
Module 'Magento_OpenSearch':
[Progress: 175 / 851]
Module 'Magento_CustomerAnalytics':
[Progress: 176 / 851]
Module 'Magento_SendFriend':
[Progress: 177 / 851]
Module 'Magento_SendFriendGraphQl':
[Progress: 178 / 851]
Module 'Magento_Shipping':
[Progress: 179 / 851]
Module 'Magento_RemoteStorage':
[Progress: 180 / 851]
Module 'Magento_AwsS3':
[Progress: 181 / 851]
Module 'Magento_UrlRewriteGraphQl':
[Progress: 182 / 851]
Module 'Magento_Webapi':
[Progress: 183 / 851]
Module 'Magento_SwaggerWebapi':
[Progress: 184 / 851]
Module 'Magento_SwaggerWebapiAsync':
[Progress: 185 / 851]
Module 'Magento_Swatches':
[Progress: 186 / 851]
Module 'Magento_SwatchesGraphQl':
[Progress: 187 / 851]
Module 'Magento_SwatchesLayeredNavigation':
[Progress: 188 / 851]
Module 'Magento_Tax':
[Progress: 189 / 851]
Module 'Magento_TaxGraphQl':
[Progress: 190 / 851]
Module 'Magento_TaxImportExport':
[Progress: 191 / 851]
Module 'Magento_CompareListGraphQl':
[Progress: 192 / 851]
Module 'Magento_ThemeGraphQl':
[Progress: 193 / 851]
Module 'Magento_Translation':
[Progress: 194 / 851]
Module 'Magento_GoogleOptimizer':
[Progress: 195 / 851]
Module 'Magento_Ups':
[Progress: 196 / 851]
Module 'Magento_SampleData':
[Progress: 197 / 851]
Module 'Magento_CatalogUrlRewriteGraphQl':
[Progress: 198 / 851]
Module 'Magento_CatalogAnalytics':
[Progress: 199 / 851]
Module 'Magento_Usps':
[Progress: 200 / 851]
Module 'Magento_CatalogInventoryGraphQl':
[Progress: 201 / 851]
Module 'Magento_PaypalCaptcha':
[Progress: 202 / 851]
Module 'Magento_VaultGraphQl':
[Progress: 203 / 851]
Module 'Magento_Version':
[Progress: 204 / 851]
Module 'Magento_Swagger':
[Progress: 205 / 851]
Module 'Magento_WebapiAsync':
[Progress: 206 / 851]
Module 'Magento_WebapiSecurity':
[Progress: 207 / 851]
Module 'Magento_Weee':
[Progress: 208 / 851]
Module 'Magento_WeeeGraphQl':
[Progress: 209 / 851]
Module 'Magento_CatalogWidget':
[Progress: 210 / 851]
Module 'Magento_Wishlist':
[Progress: 211 / 851]
Module 'Magento_WishlistAnalytics':
[Progress: 212 / 851]
Module 'Magento_WishlistGraphQl':
[Progress: 213 / 851]
Schema post-updates:
Module 'Magento_AdminAnalytics':
[Progress: 214 / 851]
Module 'Magento_Store':
[Progress: 215 / 851]
Module 'Magento_AdvancedPricingImportExport':
[Progress: 216 / 851]
Module 'Magento_Directory':
[Progress: 217 / 851]
Module 'Magento_Amqp':
Running schema recurring...
[Progress: 218 / 851]
Module 'Magento_Config':
[Progress: 219 / 851]
Module 'Magento_Theme':
[Progress: 220 / 851]
Module 'Magento_Backend':
[Progress: 221 / 851]
Module 'Magento_Variable':
[Progress: 222 / 851]
Module 'Magento_Search':
[Progress: 223 / 851]
Module 'Magento_Backup':
[Progress: 224 / 851]
Module 'Magento_Eav':
[Progress: 225 / 851]
Module 'Magento_Customer':
[Progress: 226 / 851]
Module 'Magento_BundleImportExport':
[Progress: 227 / 851]
Module 'Magento_CacheInvalidate':
[Progress: 228 / 851]
Module 'Magento_AdminNotification':
[Progress: 229 / 851]
Module 'Magento_Indexer':
Running schema recurring...
[Progress: 230 / 851]
Module 'Magento_Cms':
[Progress: 231 / 851]
Module 'Magento_Security':
[Progress: 232 / 851]
Module 'Magento_Authorization':
[Progress: 233 / 851]
Module 'Magento_GraphQl':
[Progress: 234 / 851]
Module 'Magento_StoreGraphQl':
[Progress: 235 / 851]
Module 'Magento_CatalogImportExport':
[Progress: 236 / 851]
Module 'Magento_Catalog':
Running schema recurring...
[Progress: 237 / 851]
Module 'Magento_CatalogInventory':
Running schema recurring...
[Progress: 238 / 851]
Module 'Magento_Rule':
[Progress: 239 / 851]
Module 'Magento_Payment':
[Progress: 240 / 851]
Module 'Magento_CatalogRuleGraphQl':
[Progress: 241 / 851]
Module 'Magento_CatalogRule':
[Progress: 242 / 851]
Module 'Magento_CatalogUrlRewrite':
Running schema recurring...
[Progress: 243 / 851]
Module 'Magento_EavGraphQl':
[Progress: 244 / 851]
Module 'Magento_Widget':
[Progress: 245 / 851]
Module 'Magento_Quote':
[Progress: 246 / 851]
Module 'Magento_SalesSequence':
Running schema recurring...
[Progress: 247 / 851]
Module 'Magento_CheckoutAgreementsGraphQl':
[Progress: 248 / 851]
Module 'Magento_Bundle':
Running schema recurring...
[Progress: 249 / 851]
Module 'Magento_CmsGraphQl':
[Progress: 250 / 851]
Module 'Magento_CmsUrlRewrite':
[Progress: 251 / 851]
Module 'Magento_CmsUrlRewriteGraphQl':
[Progress: 252 / 851]
Module 'Magento_CatalogGraphQl':
[Progress: 253 / 851]
Module 'Magento_User':
[Progress: 254 / 851]
Module 'Magento_Msrp':
[Progress: 255 / 851]
Module 'Magento_Sales':
[Progress: 256 / 851]
Module 'Magento_QuoteGraphQl':
[Progress: 257 / 851]
Module 'Magento_Checkout':
[Progress: 258 / 851]
Module 'Magento_Contact':
[Progress: 259 / 851]
Module 'Magento_Cookie':
[Progress: 260 / 851]
Module 'Magento_Cron':
Running schema recurring...
[Progress: 261 / 851]
Module 'Magento_Csp':
[Progress: 262 / 851]
Module 'Magento_CurrencySymbol':
[Progress: 263 / 851]
Module 'Magento_CatalogCustomerGraphQl':
[Progress: 264 / 851]
Module 'Magento_Integration':
Running schema recurring...
[Progress: 265 / 851]
Module 'Magento_Downloadable':
[Progress: 266 / 851]
Module 'Magento_CustomerGraphQl':
[Progress: 267 / 851]
Module 'Magento_CustomerImportExport':
[Progress: 268 / 851]
Module 'Magento_Deploy':
[Progress: 269 / 851]
Module 'Magento_Developer':
[Progress: 270 / 851]
Module 'Magento_Dhl':
[Progress: 271 / 851]
Module 'Magento_AsynchronousOperations':
[Progress: 272 / 851]
Module 'Magento_DirectoryGraphQl':
[Progress: 273 / 851]
Module 'Magento_DownloadableGraphQl':
[Progress: 274 / 851]
Module 'Magento_CustomerDownloadableGraphQl':
[Progress: 275 / 851]
Module 'Magento_ImportExport':
[Progress: 276 / 851]
Module 'Magento_Captcha':
[Progress: 277 / 851]
Module 'Magento_BundleGraphQl':
[Progress: 278 / 851]
Module 'Magento_CatalogSearch':
[Progress: 279 / 851]
Module 'Magento_AdvancedSearch':
[Progress: 280 / 851]
Module 'Magento_Email':
[Progress: 281 / 851]
Module 'Magento_EncryptionKey':
[Progress: 282 / 851]
Module 'Magento_Fedex':
[Progress: 283 / 851]
Module 'Magento_GiftMessage':
[Progress: 284 / 851]
Module 'Magento_GiftMessageGraphQl':
[Progress: 285 / 851]
Module 'Magento_GoogleAdwords':
[Progress: 286 / 851]
Module 'Magento_GoogleAnalytics':
[Progress: 287 / 851]
Module 'Magento_GoogleGtag':
[Progress: 288 / 851]
Module 'Magento_Ui':
[Progress: 289 / 851]
Module 'Magento_CatalogCmsGraphQl':
[Progress: 290 / 851]
Module 'Magento_PageCache':
[Progress: 291 / 851]
Module 'Magento_GroupedProduct':
[Progress: 292 / 851]
Module 'Magento_GroupedImportExport':
[Progress: 293 / 851]
Module 'Magento_GroupedCatalogInventory':
[Progress: 294 / 851]
Module 'Magento_GroupedProductGraphQl':
[Progress: 295 / 851]
Module 'Magento_DownloadableImportExport':
[Progress: 296 / 851]
Module 'Magento_ConfigurableProduct':
Running schema recurring...
[Progress: 297 / 851]
Module 'Magento_InstantPurchase':
[Progress: 298 / 851]
Module 'Magento_Analytics':
[Progress: 299 / 851]
Module 'Magento_JwtFrameworkAdapter':
[Progress: 300 / 851]
Module 'Magento_JwtUserToken':
[Progress: 301 / 851]
Module 'Magento_LayeredNavigation':
[Progress: 302 / 851]
Module 'Magento_LoginAsCustomer':
[Progress: 303 / 851]
Module 'Magento_LoginAsCustomerAdminUi':
[Progress: 304 / 851]
Module 'Magento_LoginAsCustomerApi':
[Progress: 305 / 851]
Module 'Magento_LoginAsCustomerAssistance':
[Progress: 306 / 851]
Module 'Magento_LoginAsCustomerFrontendUi':
[Progress: 307 / 851]
Module 'Magento_LoginAsCustomerGraphQl':
[Progress: 308 / 851]
Module 'Magento_LoginAsCustomerLog':
[Progress: 309 / 851]
Module 'Magento_LoginAsCustomerPageCache':
[Progress: 310 / 851]
Module 'Magento_LoginAsCustomerQuote':
[Progress: 311 / 851]
Module 'Magento_LoginAsCustomerSales':
[Progress: 312 / 851]
Module 'Magento_Marketplace':
[Progress: 313 / 851]
Module 'Magento_MediaContent':
[Progress: 314 / 851]
Module 'Magento_MediaContentApi':
[Progress: 315 / 851]
Module 'Magento_MediaContentCatalog':
[Progress: 316 / 851]
Module 'Magento_MediaContentCms':
[Progress: 317 / 851]
Module 'Magento_MediaContentSynchronization':
[Progress: 318 / 851]
Module 'Magento_MediaContentSynchronizationApi':
[Progress: 319 / 851]
Module 'Magento_MediaContentSynchronizationCatalog':
[Progress: 320 / 851]
Module 'Magento_MediaContentSynchronizationCms':
[Progress: 321 / 851]
Module 'Magento_MediaGallery':
[Progress: 322 / 851]
Module 'Magento_MediaGalleryApi':
[Progress: 323 / 851]
Module 'Magento_MediaGalleryCatalog':
[Progress: 324 / 851]
Module 'Magento_MediaGalleryCatalogIntegration':
[Progress: 325 / 851]
Module 'Magento_MediaGalleryCatalogUi':
[Progress: 326 / 851]
Module 'Magento_MediaGalleryCmsUi':
[Progress: 327 / 851]
Module 'Magento_MediaGalleryIntegration':
[Progress: 328 / 851]
Module 'Magento_MediaGalleryMetadata':
[Progress: 329 / 851]
Module 'Magento_MediaGalleryMetadataApi':
[Progress: 330 / 851]
Module 'Magento_MediaGalleryRenditions':
[Progress: 331 / 851]
Module 'Magento_MediaGalleryRenditionsApi':
[Progress: 332 / 851]
Module 'Magento_MediaGallerySynchronization':
[Progress: 333 / 851]
Module 'Magento_MediaGallerySynchronizationApi':
[Progress: 334 / 851]
Module 'Magento_MediaGallerySynchronizationMetadata':
[Progress: 335 / 851]
Module 'Magento_MediaGalleryUi':
[Progress: 336 / 851]
Module 'Magento_MediaGalleryUiApi':
[Progress: 337 / 851]
Module 'Magento_Robots':
[Progress: 338 / 851]
Module 'Magento_MessageQueue':
Running schema recurring...
[Progress: 339 / 851]
Module 'Magento_CatalogRuleConfigurable':
[Progress: 340 / 851]
Module 'Magento_MsrpConfigurableProduct':
[Progress: 341 / 851]
Module 'Magento_MsrpGroupedProduct':
[Progress: 342 / 851]
Module 'Magento_Multishipping':
[Progress: 343 / 851]
Module 'Magento_MysqlMq':
Running schema recurring...
[Progress: 344 / 851]
Module 'Magento_NewRelicReporting':
[Progress: 345 / 851]
Module 'Magento_Newsletter':
[Progress: 346 / 851]
Module 'Magento_NewsletterGraphQl':
[Progress: 347 / 851]
Module 'Magento_OfflinePayments':
[Progress: 348 / 851]
Module 'Magento_SalesRule':
[Progress: 349 / 851]
Module 'Magento_Elasticsearch':
[Progress: 350 / 851]
Module 'Magento_GraphQlCache':
[Progress: 351 / 851]
Module 'Magento_CardinalCommerce':
[Progress: 352 / 851]
Module 'Magento_PaymentGraphQl':
[Progress: 353 / 851]
Module 'Magento_Vault':
[Progress: 354 / 851]
Module 'Magento_Paypal':
[Progress: 355 / 851]
Module 'Magento_PaypalGraphQl':
[Progress: 356 / 851]
Module 'Magento_Persistent':
[Progress: 357 / 851]
Module 'Magento_ProductAlert':
Running schema recurring...
[Progress: 358 / 851]
Module 'Magento_ProductVideo':
[Progress: 359 / 851]
Module 'Magento_CheckoutAgreements':
[Progress: 360 / 851]
Module 'Magento_QuoteAnalytics':
[Progress: 361 / 851]
Module 'Magento_QuoteBundleOptions':
[Progress: 362 / 851]
Module 'Magento_QuoteConfigurableOptions':
[Progress: 363 / 851]
Module 'Magento_QuoteDownloadableLinks':
[Progress: 364 / 851]
Module 'Magento_ConfigurableProductGraphQl':
[Progress: 365 / 851]
Module 'Magento_RelatedProductGraphQl':
[Progress: 366 / 851]
Module 'Magento_ReleaseNotification':
[Progress: 367 / 851]
Module 'Magento_Sitemap':
[Progress: 368 / 851]
Module 'Magento_Reports':
Running schema recurring...
[Progress: 369 / 851]
Module 'Magento_RequireJs':
[Progress: 370 / 851]
Module 'Magento_Review':
[Progress: 371 / 851]
Module 'Magento_ReviewAnalytics':
[Progress: 372 / 851]
Module 'Magento_ReviewGraphQl':
[Progress: 373 / 851]
Module 'Magento_MediaStorage':
[Progress: 374 / 851]
Module 'Magento_Rss':
[Progress: 375 / 851]
Module 'Magento_Elasticsearch7':
[Progress: 376 / 851]
Module 'Magento_ConfigurableProductSales':
[Progress: 377 / 851]
Module 'Magento_SalesAnalytics':
[Progress: 378 / 851]
Module 'Magento_SalesGraphQl':
[Progress: 379 / 851]
Module 'Magento_SalesInventory':
[Progress: 380 / 851]
Module 'Magento_OfflineShipping':
[Progress: 381 / 851]
Module 'Magento_ConfigurableImportExport':
[Progress: 382 / 851]
Module 'Magento_UrlRewrite':
[Progress: 383 / 851]
Module 'Magento_OpenSearch':
[Progress: 384 / 851]
Module 'Magento_CustomerAnalytics':
[Progress: 385 / 851]
Module 'Magento_SendFriend':
[Progress: 386 / 851]
Module 'Magento_SendFriendGraphQl':
[Progress: 387 / 851]
Module 'Magento_Shipping':
[Progress: 388 / 851]
Module 'Magento_RemoteStorage':
[Progress: 389 / 851]
Module 'Magento_AwsS3':
[Progress: 390 / 851]
Module 'Magento_UrlRewriteGraphQl':
[Progress: 391 / 851]
Module 'Magento_Webapi':
[Progress: 392 / 851]
Module 'Magento_SwaggerWebapi':
[Progress: 393 / 851]
Module 'Magento_SwaggerWebapiAsync':
[Progress: 394 / 851]
Module 'Magento_Swatches':
[Progress: 395 / 851]
Module 'Magento_SwatchesGraphQl':
[Progress: 396 / 851]
Module 'Magento_SwatchesLayeredNavigation':
[Progress: 397 / 851]
Module 'Magento_Tax':
[Progress: 398 / 851]
Module 'Magento_TaxGraphQl':
[Progress: 399 / 851]
Module 'Magento_TaxImportExport':
[Progress: 400 / 851]
Module 'Magento_CompareListGraphQl':
[Progress: 401 / 851]
Module 'Magento_ThemeGraphQl':
[Progress: 402 / 851]
Module 'Magento_Translation':
[Progress: 403 / 851]
Module 'Magento_GoogleOptimizer':
[Progress: 404 / 851]
Module 'Magento_Ups':
[Progress: 405 / 851]
Module 'Magento_SampleData':
[Progress: 406 / 851]
Module 'Magento_CatalogUrlRewriteGraphQl':
[Progress: 407 / 851]
Module 'Magento_CatalogAnalytics':
[Progress: 408 / 851]
Module 'Magento_Usps':
[Progress: 409 / 851]
Module 'Magento_CatalogInventoryGraphQl':
[Progress: 410 / 851]
Module 'Magento_PaypalCaptcha':
[Progress: 411 / 851]
Module 'Magento_VaultGraphQl':
[Progress: 412 / 851]
Module 'Magento_Version':
[Progress: 413 / 851]
Module 'Magento_Swagger':
[Progress: 414 / 851]
Module 'Magento_WebapiAsync':
[Progress: 415 / 851]
Module 'Magento_WebapiSecurity':
[Progress: 416 / 851]
Module 'Magento_Weee':
Running schema recurring...
[Progress: 417 / 851]
Module 'Magento_WeeeGraphQl':
[Progress: 418 / 851]
Module 'Magento_CatalogWidget':
[Progress: 419 / 851]
Module 'Magento_Wishlist':
Running schema recurring...
[Progress: 420 / 851]
Module 'Magento_WishlistAnalytics':
[Progress: 421 / 851]
Module 'Magento_WishlistGraphQl':
[Progress: 422 / 851]
[Progress: 423 / 851]
Installing search configuration...
[Progress: 424 / 851]
Validating remote storage configuration...
[Progress: 425 / 851]
Installing user configuration...
[Progress: 426 / 851]
Enabling caches:
Current status:
config: 1
layout: 1
block_html: 1
collections: 1
reflection: 1
db_ddl: 1
compiled_config: 1
eav: 1
customer_notification: 1
config_integration: 1
config_integration_api: 1
full_page: 1
config_webservice: 1
translate: 1
[Progress: 427 / 851]
Installing data...
Data install/update:
Disabling caches:
Current status:
layout: 0
block_html: 0
full_page: 0
Module 'Magento_AdminAnalytics':
[Progress: 428 / 851]
Module 'Magento_Store':
[Progress: 429 / 851]
Module 'Magento_AdvancedPricingImportExport':
[Progress: 430 / 851]
Module 'Magento_Directory':
[Progress: 431 / 851]
Module 'Magento_Amqp':
[Progress: 432 / 851]
Module 'Magento_Config':
[Progress: 433 / 851]
Module 'Magento_Theme':
[Progress: 434 / 851]
Module 'Magento_Backend':
[Progress: 435 / 851]
Module 'Magento_Variable':
[Progress: 436 / 851]
Module 'Magento_Search':
[Progress: 437 / 851]
Module 'Magento_Backup':
[Progress: 438 / 851]
Module 'Magento_Eav':
[Progress: 439 / 851]
Module 'Magento_Customer':
[Progress: 440 / 851]
Module 'Magento_BundleImportExport':
[Progress: 441 / 851]
Module 'Magento_CacheInvalidate':
[Progress: 442 / 851]
Module 'Magento_AdminNotification':
[Progress: 443 / 851]
Module 'Magento_Indexer':
[Progress: 444 / 851]
Module 'Magento_Cms':
[Progress: 445 / 851]
Module 'Magento_Security':
[Progress: 446 / 851]
Module 'Magento_Authorization':
[Progress: 447 / 851]
Module 'Magento_GraphQl':
[Progress: 448 / 851]
Module 'Magento_StoreGraphQl':
[Progress: 449 / 851]
Module 'Magento_CatalogImportExport':
[Progress: 450 / 851]
Module 'Magento_Catalog':
[Progress: 451 / 851]
Module 'Magento_CatalogInventory':
[Progress: 452 / 851]
Module 'Magento_Rule':
[Progress: 453 / 851]
Module 'Magento_Payment':
[Progress: 454 / 851]
Module 'Magento_CatalogRuleGraphQl':
[Progress: 455 / 851]
Module 'Magento_CatalogRule':
[Progress: 456 / 851]
Module 'Magento_CatalogUrlRewrite':
[Progress: 457 / 851]
Module 'Magento_EavGraphQl':
[Progress: 458 / 851]
Module 'Magento_Widget':
[Progress: 459 / 851]
Module 'Magento_Quote':
[Progress: 460 / 851]
Module 'Magento_SalesSequence':
[Progress: 461 / 851]
Module 'Magento_CheckoutAgreementsGraphQl':
[Progress: 462 / 851]
Module 'Magento_Bundle':
[Progress: 463 / 851]
Module 'Magento_CmsGraphQl':
[Progress: 464 / 851]
Module 'Magento_CmsUrlRewrite':
[Progress: 465 / 851]
Module 'Magento_CmsUrlRewriteGraphQl':
[Progress: 466 / 851]
Module 'Magento_CatalogGraphQl':
[Progress: 467 / 851]
Module 'Magento_User':
[Progress: 468 / 851]
Module 'Magento_Msrp':
[Progress: 469 / 851]
Module 'Magento_Sales':
[Progress: 470 / 851]
Module 'Magento_QuoteGraphQl':
[Progress: 471 / 851]
Module 'Magento_Checkout':
[Progress: 472 / 851]
Module 'Magento_Contact':
[Progress: 473 / 851]
Module 'Magento_Cookie':
[Progress: 474 / 851]
Module 'Magento_Cron':
[Progress: 475 / 851]
Module 'Magento_Csp':
[Progress: 476 / 851]
Module 'Magento_CurrencySymbol':
[Progress: 477 / 851]
Module 'Magento_CatalogCustomerGraphQl':
[Progress: 478 / 851]
Module 'Magento_Integration':
[Progress: 479 / 851]
Module 'Magento_Downloadable':
[Progress: 480 / 851]
Module 'Magento_CustomerGraphQl':
[Progress: 481 / 851]
Module 'Magento_CustomerImportExport':
[Progress: 482 / 851]
Module 'Magento_Deploy':
[Progress: 483 / 851]
Module 'Magento_Developer':
[Progress: 484 / 851]
Module 'Magento_Dhl':
[Progress: 485 / 851]
Module 'Magento_AsynchronousOperations':
[Progress: 486 / 851]
Module 'Magento_DirectoryGraphQl':
[Progress: 487 / 851]
Module 'Magento_DownloadableGraphQl':
[Progress: 488 / 851]
Module 'Magento_CustomerDownloadableGraphQl':
[Progress: 489 / 851]
Module 'Magento_ImportExport':
[Progress: 490 / 851]
Module 'Magento_Captcha':
[Progress: 491 / 851]
Module 'Magento_BundleGraphQl':
[Progress: 492 / 851]
Module 'Magento_CatalogSearch':
[Progress: 493 / 851]
Module 'Magento_AdvancedSearch':
[Progress: 494 / 851]
Module 'Magento_Email':
[Progress: 495 / 851]
Module 'Magento_EncryptionKey':
[Progress: 496 / 851]
Module 'Magento_Fedex':
[Progress: 497 / 851]
Module 'Magento_GiftMessage':
[Progress: 498 / 851]
Module 'Magento_GiftMessageGraphQl':
[Progress: 499 / 851]
Module 'Magento_GoogleAdwords':
[Progress: 500 / 851]
Module 'Magento_GoogleAnalytics':
[Progress: 501 / 851]
Module 'Magento_GoogleGtag':
[Progress: 502 / 851]
Module 'Magento_Ui':
[Progress: 503 / 851]
Module 'Magento_CatalogCmsGraphQl':
[Progress: 504 / 851]
Module 'Magento_PageCache':
[Progress: 505 / 851]
Module 'Magento_GroupedProduct':
[Progress: 506 / 851]
Module 'Magento_GroupedImportExport':
[Progress: 507 / 851]
Module 'Magento_GroupedCatalogInventory':
[Progress: 508 / 851]
Module 'Magento_GroupedProductGraphQl':
[Progress: 509 / 851]
Module 'Magento_DownloadableImportExport':
[Progress: 510 / 851]
Module 'Magento_ConfigurableProduct':
[Progress: 511 / 851]
Module 'Magento_InstantPurchase':
[Progress: 512 / 851]
Module 'Magento_Analytics':
[Progress: 513 / 851]
Module 'Magento_JwtFrameworkAdapter':
[Progress: 514 / 851]
Module 'Magento_JwtUserToken':
[Progress: 515 / 851]
Module 'Magento_LayeredNavigation':
[Progress: 516 / 851]
Module 'Magento_LoginAsCustomer':
[Progress: 517 / 851]
Module 'Magento_LoginAsCustomerAdminUi':
[Progress: 518 / 851]
Module 'Magento_LoginAsCustomerApi':
[Progress: 519 / 851]
Module 'Magento_LoginAsCustomerAssistance':
[Progress: 520 / 851]
Module 'Magento_LoginAsCustomerFrontendUi':
[Progress: 521 / 851]
Module 'Magento_LoginAsCustomerGraphQl':
[Progress: 522 / 851]
Module 'Magento_LoginAsCustomerLog':
[Progress: 523 / 851]
Module 'Magento_LoginAsCustomerPageCache':
[Progress: 524 / 851]
Module 'Magento_LoginAsCustomerQuote':
[Progress: 525 / 851]
Module 'Magento_LoginAsCustomerSales':
[Progress: 526 / 851]
Module 'Magento_Marketplace':
[Progress: 527 / 851]
Module 'Magento_MediaContent':
[Progress: 528 / 851]
Module 'Magento_MediaContentApi':
[Progress: 529 / 851]
Module 'Magento_MediaContentCatalog':
[Progress: 530 / 851]
Module 'Magento_MediaContentCms':
[Progress: 531 / 851]
Module 'Magento_MediaContentSynchronization':
[Progress: 532 / 851]
Module 'Magento_MediaContentSynchronizationApi':
[Progress: 533 / 851]
Module 'Magento_MediaContentSynchronizationCatalog':
[Progress: 534 / 851]
Module 'Magento_MediaContentSynchronizationCms':
[Progress: 535 / 851]
Module 'Magento_MediaGallery':
[Progress: 536 / 851]
Module 'Magento_MediaGalleryApi':
[Progress: 537 / 851]
Module 'Magento_MediaGalleryCatalog':
[Progress: 538 / 851]
Module 'Magento_MediaGalleryCatalogIntegration':
[Progress: 539 / 851]
Module 'Magento_MediaGalleryCatalogUi':
[Progress: 540 / 851]
Module 'Magento_MediaGalleryCmsUi':
[Progress: 541 / 851]
Module 'Magento_MediaGalleryIntegration':
[Progress: 542 / 851]
Module 'Magento_MediaGalleryMetadata':
[Progress: 543 / 851]
Module 'Magento_MediaGalleryMetadataApi':
[Progress: 544 / 851]
Module 'Magento_MediaGalleryRenditions':
[Progress: 545 / 851]
Module 'Magento_MediaGalleryRenditionsApi':
[Progress: 546 / 851]
Module 'Magento_MediaGallerySynchronization':
[Progress: 547 / 851]
Module 'Magento_MediaGallerySynchronizationApi':
[Progress: 548 / 851]
Module 'Magento_MediaGallerySynchronizationMetadata':
[Progress: 549 / 851]
Module 'Magento_MediaGalleryUi':
[Progress: 550 / 851]
Module 'Magento_MediaGalleryUiApi':
[Progress: 551 / 851]
Module 'Magento_Robots':
[Progress: 552 / 851]
Module 'Magento_MessageQueue':
[Progress: 553 / 851]
Module 'Magento_CatalogRuleConfigurable':
[Progress: 554 / 851]
Module 'Magento_MsrpConfigurableProduct':
[Progress: 555 / 851]
Module 'Magento_MsrpGroupedProduct':
[Progress: 556 / 851]
Module 'Magento_Multishipping':
[Progress: 557 / 851]
Module 'Magento_MysqlMq':
[Progress: 558 / 851]
Module 'Magento_NewRelicReporting':
[Progress: 559 / 851]
Module 'Magento_Newsletter':
[Progress: 560 / 851]
Module 'Magento_NewsletterGraphQl':
[Progress: 561 / 851]
Module 'Magento_OfflinePayments':
[Progress: 562 / 851]
Module 'Magento_SalesRule':
[Progress: 563 / 851]
Module 'Magento_Elasticsearch':
[Progress: 564 / 851]
Module 'Magento_GraphQlCache':
[Progress: 565 / 851]
Module 'Magento_CardinalCommerce':
[Progress: 566 / 851]
Module 'Magento_PaymentGraphQl':
[Progress: 567 / 851]
Module 'Magento_Vault':
[Progress: 568 / 851]
Module 'Magento_Paypal':
[Progress: 569 / 851]
Module 'Magento_PaypalGraphQl':
[Progress: 570 / 851]
Module 'Magento_Persistent':
[Progress: 571 / 851]
Module 'Magento_ProductAlert':
[Progress: 572 / 851]
Module 'Magento_ProductVideo':
[Progress: 573 / 851]
Module 'Magento_CheckoutAgreements':
[Progress: 574 / 851]
Module 'Magento_QuoteAnalytics':
[Progress: 575 / 851]
Module 'Magento_QuoteBundleOptions':
[Progress: 576 / 851]
Module 'Magento_QuoteConfigurableOptions':
[Progress: 577 / 851]
Module 'Magento_QuoteDownloadableLinks':
[Progress: 578 / 851]
Module 'Magento_ConfigurableProductGraphQl':
[Progress: 579 / 851]
Module 'Magento_RelatedProductGraphQl':
[Progress: 580 / 851]
Module 'Magento_ReleaseNotification':
[Progress: 581 / 851]
Module 'Magento_Sitemap':
[Progress: 582 / 851]
Module 'Magento_Reports':
[Progress: 583 / 851]
Module 'Magento_RequireJs':
[Progress: 584 / 851]
Module 'Magento_Review':
[Progress: 585 / 851]
Module 'Magento_ReviewAnalytics':
[Progress: 586 / 851]
Module 'Magento_ReviewGraphQl':
[Progress: 587 / 851]
Module 'Magento_MediaStorage':
[Progress: 588 / 851]
Module 'Magento_Rss':
[Progress: 589 / 851]
Module 'Magento_Elasticsearch7':
[Progress: 590 / 851]
Module 'Magento_ConfigurableProductSales':
[Progress: 591 / 851]
Module 'Magento_SalesAnalytics':
[Progress: 592 / 851]
Module 'Magento_SalesGraphQl':
[Progress: 593 / 851]
Module 'Magento_SalesInventory':
[Progress: 594 / 851]
Module 'Magento_OfflineShipping':
[Progress: 595 / 851]
Module 'Magento_ConfigurableImportExport':
[Progress: 596 / 851]
Module 'Magento_UrlRewrite':
[Progress: 597 / 851]
Module 'Magento_OpenSearch':
[Progress: 598 / 851]
Module 'Magento_CustomerAnalytics':
[Progress: 599 / 851]
Module 'Magento_SendFriend':
[Progress: 600 / 851]
Module 'Magento_SendFriendGraphQl':
[Progress: 601 / 851]
Module 'Magento_Shipping':
[Progress: 602 / 851]
Module 'Magento_RemoteStorage':
[Progress: 603 / 851]
Module 'Magento_AwsS3':
[Progress: 604 / 851]
Module 'Magento_UrlRewriteGraphQl':
[Progress: 605 / 851]
Module 'Magento_Webapi':
[Progress: 606 / 851]
Module 'Magento_SwaggerWebapi':
[Progress: 607 / 851]
Module 'Magento_SwaggerWebapiAsync':
[Progress: 608 / 851]
Module 'Magento_Swatches':
[Progress: 609 / 851]
Module 'Magento_SwatchesGraphQl':
[Progress: 610 / 851]
Module 'Magento_SwatchesLayeredNavigation':
[Progress: 611 / 851]
Module 'Magento_Tax':
[Progress: 612 / 851]
Module 'Magento_TaxGraphQl':
[Progress: 613 / 851]
Module 'Magento_TaxImportExport':
[Progress: 614 / 851]
Module 'Magento_CompareListGraphQl':
[Progress: 615 / 851]
Module 'Magento_ThemeGraphQl':
[Progress: 616 / 851]
Module 'Magento_Translation':
[Progress: 617 / 851]
Module 'Magento_GoogleOptimizer':
[Progress: 618 / 851]
Module 'Magento_Ups':
[Progress: 619 / 851]
Module 'Magento_SampleData':
[Progress: 620 / 851]
Module 'Magento_CatalogUrlRewriteGraphQl':
[Progress: 621 / 851]
Module 'Magento_CatalogAnalytics':
[Progress: 622 / 851]
Module 'Magento_Usps':
[Progress: 623 / 851]
Module 'Magento_CatalogInventoryGraphQl':
[Progress: 624 / 851]
Module 'Magento_PaypalCaptcha':
[Progress: 625 / 851]
Module 'Magento_VaultGraphQl':
[Progress: 626 / 851]
Module 'Magento_Version':
[Progress: 627 / 851]
Module 'Magento_Swagger':
[Progress: 628 / 851]
Module 'Magento_WebapiAsync':
[Progress: 629 / 851]
Module 'Magento_WebapiSecurity':
[Progress: 630 / 851]
Module 'Magento_Weee':
[Progress: 631 / 851]
Module 'Magento_WeeeGraphQl':
[Progress: 632 / 851]
Module 'Magento_CatalogWidget':
[Progress: 633 / 851]
Module 'Magento_Wishlist':
[Progress: 634 / 851]
Module 'Magento_WishlistAnalytics':
[Progress: 635 / 851]
Module 'Magento_WishlistGraphQl':
[Progress: 636 / 851]
Data post-updates:
Module 'Magento_AdminAnalytics':
[Progress: 637 / 851]
Module 'Magento_Store':
[Progress: 638 / 851]
Module 'Magento_AdvancedPricingImportExport':
[Progress: 639 / 851]
Module 'Magento_Directory':
[Progress: 640 / 851]
Module 'Magento_Amqp':
[Progress: 641 / 851]
Module 'Magento_Config':
[Progress: 642 / 851]
Module 'Magento_Theme':
Running data recurring...
[Progress: 643 / 851]
Module 'Magento_Backend':
[Progress: 644 / 851]
Module 'Magento_Variable':
[Progress: 645 / 851]
Module 'Magento_Search':
[Progress: 646 / 851]
Module 'Magento_Backup':
[Progress: 647 / 851]
Module 'Magento_Eav':
[Progress: 648 / 851]
Module 'Magento_Customer':
Running data recurring...
[Progress: 649 / 851]
Module 'Magento_BundleImportExport':
[Progress: 650 / 851]
Module 'Magento_CacheInvalidate':
[Progress: 651 / 851]
Module 'Magento_AdminNotification':
[Progress: 652 / 851]
Module 'Magento_Indexer':
[Progress: 653 / 851]
Module 'Magento_Cms':
[Progress: 654 / 851]
Module 'Magento_Security':
[Progress: 655 / 851]
Module 'Magento_Authorization':
[Progress: 656 / 851]
Module 'Magento_GraphQl':
[Progress: 657 / 851]
Module 'Magento_StoreGraphQl':
[Progress: 658 / 851]
Module 'Magento_CatalogImportExport':
[Progress: 659 / 851]
Module 'Magento_Catalog':
[Progress: 660 / 851]
Module 'Magento_CatalogInventory':
[Progress: 661 / 851]
Module 'Magento_Rule':
[Progress: 662 / 851]
Module 'Magento_Payment':
[Progress: 663 / 851]
Module 'Magento_CatalogRuleGraphQl':
[Progress: 664 / 851]
Module 'Magento_CatalogRule':
[Progress: 665 / 851]
Module 'Magento_CatalogUrlRewrite':
[Progress: 666 / 851]
Module 'Magento_EavGraphQl':
[Progress: 667 / 851]
Module 'Magento_Widget':
[Progress: 668 / 851]
Module 'Magento_Quote':
[Progress: 669 / 851]
Module 'Magento_SalesSequence':
Running data recurring...
[Progress: 670 / 851]
Module 'Magento_CheckoutAgreementsGraphQl':
[Progress: 671 / 851]
Module 'Magento_Bundle':
[Progress: 672 / 851]
Module 'Magento_CmsGraphQl':
[Progress: 673 / 851]
Module 'Magento_CmsUrlRewrite':
[Progress: 674 / 851]
Module 'Magento_CmsUrlRewriteGraphQl':
[Progress: 675 / 851]
Module 'Magento_CatalogGraphQl':
[Progress: 676 / 851]
Module 'Magento_User':
[Progress: 677 / 851]
Module 'Magento_Msrp':
[Progress: 678 / 851]
Module 'Magento_Sales':
[Progress: 679 / 851]
Module 'Magento_QuoteGraphQl':
[Progress: 680 / 851]
Module 'Magento_Checkout':
[Progress: 681 / 851]
Module 'Magento_Contact':
[Progress: 682 / 851]
Module 'Magento_Cookie':
[Progress: 683 / 851]
Module 'Magento_Cron':
[Progress: 684 / 851]
Module 'Magento_Csp':
[Progress: 685 / 851]
Module 'Magento_CurrencySymbol':
[Progress: 686 / 851]
Module 'Magento_CatalogCustomerGraphQl':
[Progress: 687 / 851]
Module 'Magento_Integration':
[Progress: 688 / 851]
Module 'Magento_Downloadable':
[Progress: 689 / 851]
Module 'Magento_CustomerGraphQl':
[Progress: 690 / 851]
Module 'Magento_CustomerImportExport':
[Progress: 691 / 851]
Module 'Magento_Deploy':
[Progress: 692 / 851]
Module 'Magento_Developer':
[Progress: 693 / 851]
Module 'Magento_Dhl':
[Progress: 694 / 851]
Module 'Magento_AsynchronousOperations':
[Progress: 695 / 851]
Module 'Magento_DirectoryGraphQl':
[Progress: 696 / 851]
Module 'Magento_DownloadableGraphQl':
[Progress: 697 / 851]
Module 'Magento_CustomerDownloadableGraphQl':
[Progress: 698 / 851]
Module 'Magento_ImportExport':
[Progress: 699 / 851]
Module 'Magento_Captcha':
[Progress: 700 / 851]
Module 'Magento_BundleGraphQl':
[Progress: 701 / 851]
Module 'Magento_CatalogSearch':
[Progress: 702 / 851]
Module 'Magento_AdvancedSearch':
[Progress: 703 / 851]
Module 'Magento_Email':
[Progress: 704 / 851]
Module 'Magento_EncryptionKey':
[Progress: 705 / 851]
Module 'Magento_Fedex':
[Progress: 706 / 851]
Module 'Magento_GiftMessage':
[Progress: 707 / 851]
Module 'Magento_GiftMessageGraphQl':
[Progress: 708 / 851]
Module 'Magento_GoogleAdwords':
[Progress: 709 / 851]
Module 'Magento_GoogleAnalytics':
[Progress: 710 / 851]
Module 'Magento_GoogleGtag':
[Progress: 711 / 851]
Module 'Magento_Ui':
[Progress: 712 / 851]
Module 'Magento_CatalogCmsGraphQl':
[Progress: 713 / 851]
Module 'Magento_PageCache':
[Progress: 714 / 851]
Module 'Magento_GroupedProduct':
[Progress: 715 / 851]
Module 'Magento_GroupedImportExport':
[Progress: 716 / 851]
Module 'Magento_GroupedCatalogInventory':
[Progress: 717 / 851]
Module 'Magento_GroupedProductGraphQl':
[Progress: 718 / 851]
Module 'Magento_DownloadableImportExport':
[Progress: 719 / 851]
Module 'Magento_ConfigurableProduct':
[Progress: 720 / 851]
Module 'Magento_InstantPurchase':
[Progress: 721 / 851]
Module 'Magento_Analytics':
[Progress: 722 / 851]
Module 'Magento_JwtFrameworkAdapter':
[Progress: 723 / 851]
Module 'Magento_JwtUserToken':
[Progress: 724 / 851]
Module 'Magento_LayeredNavigation':
[Progress: 725 / 851]
Module 'Magento_LoginAsCustomer':
[Progress: 726 / 851]
Module 'Magento_LoginAsCustomerAdminUi':
[Progress: 727 / 851]
Module 'Magento_LoginAsCustomerApi':
[Progress: 728 / 851]
Module 'Magento_LoginAsCustomerAssistance':
[Progress: 729 / 851]
Module 'Magento_LoginAsCustomerFrontendUi':
[Progress: 730 / 851]
Module 'Magento_LoginAsCustomerGraphQl':
[Progress: 731 / 851]
Module 'Magento_LoginAsCustomerLog':
[Progress: 732 / 851]
Module 'Magento_LoginAsCustomerPageCache':
[Progress: 733 / 851]
Module 'Magento_LoginAsCustomerQuote':
[Progress: 734 / 851]
Module 'Magento_LoginAsCustomerSales':
[Progress: 735 / 851]
Module 'Magento_Marketplace':
[Progress: 736 / 851]
Module 'Magento_MediaContent':
[Progress: 737 / 851]
Module 'Magento_MediaContentApi':
[Progress: 738 / 851]
Module 'Magento_MediaContentCatalog':
[Progress: 739 / 851]
Module 'Magento_MediaContentCms':
[Progress: 740 / 851]
Module 'Magento_MediaContentSynchronization':
[Progress: 741 / 851]
Module 'Magento_MediaContentSynchronizationApi':
[Progress: 742 / 851]
Module 'Magento_MediaContentSynchronizationCatalog':
[Progress: 743 / 851]
Module 'Magento_MediaContentSynchronizationCms':
[Progress: 744 / 851]
Module 'Magento_MediaGallery':
[Progress: 745 / 851]
Module 'Magento_MediaGalleryApi':
[Progress: 746 / 851]
Module 'Magento_MediaGalleryCatalog':
[Progress: 747 / 851]
Module 'Magento_MediaGalleryCatalogIntegration':
[Progress: 748 / 851]
Module 'Magento_MediaGalleryCatalogUi':
[Progress: 749 / 851]
Module 'Magento_MediaGalleryCmsUi':
[Progress: 750 / 851]
Module 'Magento_MediaGalleryIntegration':
[Progress: 751 / 851]
Module 'Magento_MediaGalleryMetadata':
[Progress: 752 / 851]
Module 'Magento_MediaGalleryMetadataApi':
[Progress: 753 / 851]
Module 'Magento_MediaGalleryRenditions':
[Progress: 754 / 851]
Module 'Magento_MediaGalleryRenditionsApi':
[Progress: 755 / 851]
Module 'Magento_MediaGallerySynchronization':
[Progress: 756 / 851]
Module 'Magento_MediaGallerySynchronizationApi':
[Progress: 757 / 851]
Module 'Magento_MediaGallerySynchronizationMetadata':
[Progress: 758 / 851]
Module 'Magento_MediaGalleryUi':
[Progress: 759 / 851]
Module 'Magento_MediaGalleryUiApi':
[Progress: 760 / 851]
Module 'Magento_Robots':
[Progress: 761 / 851]
Module 'Magento_MessageQueue':
[Progress: 762 / 851]
Module 'Magento_CatalogRuleConfigurable':
[Progress: 763 / 851]
Module 'Magento_MsrpConfigurableProduct':
[Progress: 764 / 851]
Module 'Magento_MsrpGroupedProduct':
[Progress: 765 / 851]
Module 'Magento_Multishipping':
[Progress: 766 / 851]
Module 'Magento_MysqlMq':
[Progress: 767 / 851]
Module 'Magento_NewRelicReporting':
[Progress: 768 / 851]
Module 'Magento_Newsletter':
[Progress: 769 / 851]
Module 'Magento_NewsletterGraphQl':
[Progress: 770 / 851]
Module 'Magento_OfflinePayments':
[Progress: 771 / 851]
Module 'Magento_SalesRule':
[Progress: 772 / 851]
Module 'Magento_Elasticsearch':
[Progress: 773 / 851]
Module 'Magento_GraphQlCache':
[Progress: 774 / 851]
Module 'Magento_CardinalCommerce':
[Progress: 775 / 851]
Module 'Magento_PaymentGraphQl':
[Progress: 776 / 851]
Module 'Magento_Vault':
[Progress: 777 / 851]
Module 'Magento_Paypal':
[Progress: 778 / 851]
Module 'Magento_PaypalGraphQl':
[Progress: 779 / 851]
Module 'Magento_Persistent':
[Progress: 780 / 851]
Module 'Magento_ProductAlert':
[Progress: 781 / 851]
Module 'Magento_ProductVideo':
[Progress: 782 / 851]
Module 'Magento_CheckoutAgreements':
[Progress: 783 / 851]
Module 'Magento_QuoteAnalytics':
[Progress: 784 / 851]
Module 'Magento_QuoteBundleOptions':
[Progress: 785 / 851]
Module 'Magento_QuoteConfigurableOptions':
[Progress: 786 / 851]
Module 'Magento_QuoteDownloadableLinks':
[Progress: 787 / 851]
Module 'Magento_ConfigurableProductGraphQl':
[Progress: 788 / 851]
Module 'Magento_RelatedProductGraphQl':
[Progress: 789 / 851]
Module 'Magento_ReleaseNotification':
[Progress: 790 / 851]
Module 'Magento_Sitemap':
[Progress: 791 / 851]
Module 'Magento_Reports':
[Progress: 792 / 851]
Module 'Magento_RequireJs':
[Progress: 793 / 851]
Module 'Magento_Review':
[Progress: 794 / 851]
Module 'Magento_ReviewAnalytics':
[Progress: 795 / 851]
Module 'Magento_ReviewGraphQl':
[Progress: 796 / 851]
Module 'Magento_MediaStorage':
[Progress: 797 / 851]
Module 'Magento_Rss':
[Progress: 798 / 851]
Module 'Magento_Elasticsearch7':
[Progress: 799 / 851]
Module 'Magento_ConfigurableProductSales':
[Progress: 800 / 851]
Module 'Magento_SalesAnalytics':
[Progress: 801 / 851]
Module 'Magento_SalesGraphQl':
[Progress: 802 / 851]
Module 'Magento_SalesInventory':
[Progress: 803 / 851]
Module 'Magento_OfflineShipping':
[Progress: 804 / 851]
Module 'Magento_ConfigurableImportExport':
[Progress: 805 / 851]
Module 'Magento_UrlRewrite':
[Progress: 806 / 851]
Module 'Magento_OpenSearch':
[Progress: 807 / 851]
Module 'Magento_CustomerAnalytics':
[Progress: 808 / 851]
Module 'Magento_SendFriend':
[Progress: 809 / 851]
Module 'Magento_SendFriendGraphQl':
[Progress: 810 / 851]
Module 'Magento_Shipping':
[Progress: 811 / 851]
Module 'Magento_RemoteStorage':
[Progress: 812 / 851]
Module 'Magento_AwsS3':
[Progress: 813 / 851]
Module 'Magento_UrlRewriteGraphQl':
[Progress: 814 / 851]
Module 'Magento_Webapi':
[Progress: 815 / 851]
Module 'Magento_SwaggerWebapi':
[Progress: 816 / 851]
Module 'Magento_SwaggerWebapiAsync':
[Progress: 817 / 851]
Module 'Magento_Swatches':
[Progress: 818 / 851]
Module 'Magento_SwatchesGraphQl':
[Progress: 819 / 851]
Module 'Magento_SwatchesLayeredNavigation':
[Progress: 820 / 851]
Module 'Magento_Tax':
[Progress: 821 / 851]
Module 'Magento_TaxGraphQl':
[Progress: 822 / 851]
Module 'Magento_TaxImportExport':
[Progress: 823 / 851]
Module 'Magento_CompareListGraphQl':
[Progress: 824 / 851]
Module 'Magento_ThemeGraphQl':
[Progress: 825 / 851]
Module 'Magento_Translation':
[Progress: 826 / 851]
Module 'Magento_GoogleOptimizer':
[Progress: 827 / 851]
Module 'Magento_Ups':
[Progress: 828 / 851]
Module 'Magento_SampleData':
[Progress: 829 / 851]
Module 'Magento_CatalogUrlRewriteGraphQl':
[Progress: 830 / 851]
Module 'Magento_CatalogAnalytics':
[Progress: 831 / 851]
Module 'Magento_Usps':
[Progress: 832 / 851]
Module 'Magento_CatalogInventoryGraphQl':
[Progress: 833 / 851]
Module 'Magento_PaypalCaptcha':
[Progress: 834 / 851]
Module 'Magento_VaultGraphQl':
[Progress: 835 / 851]
Module 'Magento_Version':
[Progress: 836 / 851]
Module 'Magento_Swagger':
[Progress: 837 / 851]
Module 'Magento_WebapiAsync':
[Progress: 838 / 851]
Module 'Magento_WebapiSecurity':
[Progress: 839 / 851]
Module 'Magento_Weee':
[Progress: 840 / 851]
Module 'Magento_WeeeGraphQl':
[Progress: 841 / 851]
Module 'Magento_CatalogWidget':
[Progress: 842 / 851]
Module 'Magento_Wishlist':
[Progress: 843 / 851]
Module 'Magento_WishlistAnalytics':
[Progress: 844 / 851]
Module 'Magento_WishlistGraphQl':
[Progress: 845 / 851]
Enabling caches:
Current status:
layout: 1
block_html: 1
full_page: 1
[Progress: 846 / 851]
Installing admin user...
[Progress: 847 / 851]
Caches clearing:
Cache cleared successfully
[Progress: 848 / 851]
Disabling Maintenance Mode:
[Progress: 849 / 851]
Post installation file permissions check...
For security, remove write permissions from these directories: '/home/jupyter-saintway/magento2/app/etc'
[Progress: 850 / 851]
Write installation date...
[Progress: 851 / 851]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1t4wii
Nothing to import.
In [ ]:
php -S localhost:8890 -t ~/magento2/pub/ ~/magento2/phpserver/router.php
[Thu Nov  2 14:54:31 2023] PHP 8.2.12 Development Server (http://localhost:8890) started
In [ ]:
php -S 127.0.0.1:8890 -t ~/magento2/pub/ ~/magento2/phpserver/router.php
In [ ]:
cd ~/magento2/ && bin/magento cron:install --force
Crontab has been generated and saved
In [ ]:
crontab -l
#~ MAGENTO START cd95fadb56f392d0664922423b5cc7cdcbb5f1741b53b8cf4af80c8de1136992
* * * * * /usr/bin/php8.2 /home/saintway/amemoba-kobe/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /home/saintway/amemoba-kobe/var/log/magento.cron.log
#~ MAGENTO END cd95fadb56f392d0664922423b5cc7cdcbb5f1741b53b8cf4af80c8de1136992

In [ ]:
cd ~/magento2/ && bin/magento cron:run --group index
Ran jobs by schedule.
In [ ]:
cd ~/magento2/ && bin/magento cron:run --group default
Ran jobs by schedule.
In [ ]:
cd ~/magento2/ && bin/magento cron:remove
Magento cron tasks have been removed
In [ ]:
cd ~/magento2/ && bin/magento help setup:config:set
In [ ]:
cd ~/magento2/ && bin/magento help setup:store-config:set
In [ ]:
cd ~/magento2/ && bin/magento help config:set
In [ ]:
cd ~/magento2/ && bin/magento list
In [ ]:
cd ~/magento2/ && bin/magento app:config:status
In [ ]:
cd ~/magento2/ && bin/magento cache:clean
In [ ]:
cd ~/magento2/ && bin/magento cache:status
In [ ]:
cd ~/magento2/ && bin/magento deploy:mode:set developer
In [ ]:
cd ~/magento2/ && bin/magento deploy:mode:show
In [ ]:
cd ~/magento2/ && bin/magento config:set web/url/redirect_to_base 0
Value was saved.
In [ ]:
cd ~/magento2/ && bin/magento config:set web/seo/use_rewrites 0
Value was saved.
In [ ]:
cd ~/magento2/ && bin/magento config:set web/unsecure/base_url http://jhub.name:8890/
Value was saved.
In [ ]:
cd ~/magento2/ && bin/magento config:set web/secure/base_url http://jhub.name:8890/
Value was saved.
In [ ]:
cd ~/magento2/ && bin/magento config:set web/unsecure/base_url https://jhub.name/magento/
Value was saved.
In [ ]:
cd ~/magento2/ && bin/magento config:set web/secure/base_url https://jhub.name/magento/
Value was saved.
In [ ]:
cd ~/magento2/ && bin/magento config:show
catalog/search/engine - elasticsearch7
catalog/search/elasticsearch7_server_hostname - localhost
catalog/search/elasticsearch7_server_port - 9200
catalog/search/elasticsearch7_index_prefix - mobaichi
catalog/search/elasticsearch7_server_timeout - 15
catalog/category/root_id - 2
web/seo/use_rewrites - 0
web/unsecure/base_url - https://jhub.name/magento/
web/unsecure/base_static_url - 
web/unsecure/base_media_url - 
web/secure/base_url - https://jhub.name/magento/
web/secure/base_static_url - 
web/secure/base_media_url - 
web/secure/enable_hsts - 0
web/secure/enable_upgrade_insecure - 0
web/default_layouts/default_product_layout - 
web/default_layouts/default_category_layout - 
web/default_layouts/default_cms_layout - 1column
web/cookie/cookie_path - 
web/cookie/cookie_domain - 
web/cookie/cookie_httponly - 1
web/url/redirect_to_base - 0
general/locale/code - ja_JP
general/locale/timezone - Asia/Tokyo
general/region/display_all - 1
general/region/state_required - AL,AR,AU,BG,BO,BR,BY,CA,CH,CL,CN,CO,CZ,DK,EC,EE,ES,GR,GY,HR,IN,IS,IT,LT,LV,MX,PE,PL,PT,PY,RO,SE,SR,US,UY,VE
currency/options/base - JPY
currency/options/default - JPY
currency/options/allow - JPY
analytics/subscription/enabled - 1
analytics/general/token - V8pH4aChkpnbnyrVHz7cpdqvcUAsB2Cx4XGM2OtPnozajEVcbB5j4e-IxRoy7pTyopfGHAcfSKcFFb8cCB8_fg
crontab/default/jobs/analytics_collect_data/schedule/cron_expr - 00 02 * * *
crontab/default/jobs/analytics_update/schedule/cron_expr - 0 * * * *
admin/usage/enabled - 0
paypal/general/merchant_country - JP
paypal/general/business_account - 
paypal/wpp/api_authentication - 0
paypal/wpp/api_username - 
paypal/wpp/api_password - 
paypal/wpp/api_signature - 
paypal/wpp/sandbox_flag - 0
paypal/wpp/use_proxy - 0
paypal/wpp/button_flavor - dynamic
paypal/fetch_reports/ftp_login - 
paypal/fetch_reports/ftp_password - 
paypal/fetch_reports/ftp_sandbox - 0
paypal/fetch_reports/ftp_ip - 
paypal/fetch_reports/ftp_path - 
paypal/fetch_reports/active - 0
paypal/fetch_reports/schedule - 1
paypal/fetch_reports/time - 00,00,00
paypal/style/logo - 
paypal/style/page_style - 
paypal/style/paypal_hdrimg - 
paypal/style/paypal_hdrbackcolor - 
paypal/style/paypal_hdrbordercolor - 
paypal/style/paypal_payflowcolor - 
paypal/style/checkout_page_button_customize - 0
paypal/style/product_page_button_customize - 0
paypal/style/cart_page_button_customize - 0
paypal/style/mini_cart_page_button_customize - 0
paypal/style/disable_funding_options - 
payment/komoju_payments/active - 1
payment/komoju_payments/merchant_id - d7b3l2bsi5k6jpnb6ekzc1zjl
payment/komoju_payments/secret_key - ******
payment/komoju_payments/webhook_secret_token - ******
payment/komoju_payments/title - コンビニ・クレジットカード決済
payment/komoju_payments/show_title - 1
payment/paypal_express/active - 0
payment/paypal_express/in_context - 0
payment/paypal_express/title - PayPal Express Checkout
payment/paypal_express/sort_order - 
payment/paypal_express/payment_action - Authorization
payment/paypal_express/visible_on_product - 1
payment/paypal_express/visible_on_cart - 1
payment/paypal_express/allowspecific - 0
payment/paypal_express/debug - 0
payment/paypal_express/verify_peer - 1
payment/paypal_express/line_items_enabled - 1
payment/paypal_express/transfer_shipping_options - 0
payment/paypal_express/solution_type - Mark
payment/paypal_express/require_billing_address - 0
payment/paypal_express/allow_ba_signup - never
payment/paypal_express/skip_order_review_step - 1
payment/paypal_paylater/experience_active - 0
payment/paypal_express_bml/publisher_id - 
payment/paypal_express_bml/homepage_display - 0
payment/paypal_express_bml/homepage_position - 0
payment/paypal_express_bml/homepage_size - 190x100
payment/paypal_express_bml/categorypage_display - 0
payment/paypal_express_bml/categorypage_position - 0
payment/paypal_express_bml/categorypage_size - 190x100
payment/paypal_express_bml/productpage_display - 0
payment/paypal_express_bml/productpage_position - 0
payment/paypal_express_bml/productpage_size - 190x100
payment/paypal_express_bml/checkout_display - 0
payment/paypal_express_bml/checkout_position - 0
payment/paypal_express_bml/checkout_size - 234x60
payment/paypal_billing_agreement/active - 1
payment/paypal_billing_agreement/title - PayPal Billing Agreement
payment/paypal_billing_agreement/sort_order - 
payment/paypal_billing_agreement/payment_action - Authorization
payment/paypal_billing_agreement/allowspecific - 0
payment/paypal_billing_agreement/debug - 0
payment/paypal_billing_agreement/verify_peer - 1
payment/paypal_billing_agreement/line_items_enabled - 0
payment/paypal_billing_agreement/allow_billing_agreement_wizard - 1
payment/payflow_express/active - 0
payment/payflow_express/title - PayPal Express Checkout Payflow Edition
payment/payflow_express/sort_order - 
payment/payflow_express/payment_action - Authorization
payment/payflow_express/visible_on_product - 1
payment/payflow_express/visible_on_cart - 1
payment/payflow_express/allowspecific - 0
payment/payflow_express/debug - 0
payment/payflow_express/verify_peer - 1
payment/payflow_express/line_items_enabled - 1
payment/payflow_advanced/active - 0
payment/payflow_advanced/partner - PayPal
payment/payflow_advanced/vendor - PayPal
payment/payflow_advanced/user - 
payment/payflow_advanced/pwd - 
payment/payflow_advanced/sandbox_flag - 0
payment/payflow_advanced/use_proxy - 0
payment/payflow_advanced/title - Credit Card (Payflow Advanced)
payment/payflow_advanced/sort_order - 
payment/payflow_advanced/payment_action - Authorization
payment/payflow_advanced/allowspecific - 0
payment/payflow_advanced/debug - 0
payment/payflow_advanced/verify_peer - 1
payment/payflow_advanced/csc_editable - 1
payment/payflow_advanced/csc_required - 1
payment/payflow_advanced/email_confirmation - 0
payment/payflow_advanced/url_method - GET
payment/payflow_express_bml/active - 0
payment/paypal_payment_pro/active - 0
payment/payflowpro_cc_vault/active - 0
payment/payflowpro_cc_vault/title - Stored Cards (Payflow Pro)
payment/payflowpro/partner - 
payment/payflowpro/user - 
payment/payflowpro/vendor - 
payment/payflowpro/pwd - 
payment/payflowpro/sandbox_flag - 0
payment/payflowpro/use_proxy - 0
payment/payflowpro/title - Credit Card (Payflow Pro)
payment/payflowpro/sort_order - 
payment/payflowpro/payment_action - Authorization
payment/payflowpro/cctypes - AE,VI
payment/payflowpro/allowspecific - 0
payment/payflowpro/debug - 0
payment/payflowpro/verify_peer - 1
payment/payflowpro/useccv - 1
payment/payflowpro/fmf - 0
payment/payflowpro/avs_street - 0
payment/payflowpro/avs_zip - 0
payment/payflowpro/avs_international - 0
payment/payflowpro/avs_security_code - 1
payment/payflowpro/active - 0
payment/wps_express/active - 0
payment/wps_express_bml/active - 0
payment/payflow_link/active - 0
payment/payflow_link/partner - PayPal
payment/payflow_link/vendor - 
payment/payflow_link/user - 
payment/payflow_link/pwd - 
payment/payflow_link/sandbox_flag - 0
payment/payflow_link/use_proxy - 0
payment/payflow_link/title - Credit Card (Payflow Link)
payment/payflow_link/sort_order - 
payment/payflow_link/payment_action - Authorization
payment/payflow_link/allowspecific - 0
payment/payflow_link/debug - 0
payment/payflow_link/verify_peer - 1
payment/payflow_link/csc_editable - 1
payment/payflow_link/csc_required - 1
payment/payflow_link/email_confirmation - 0
payment/payflow_link/url_method - GET
payment/free/specificcountry - 
payment/checkmo/active - 0
payment/checkmo/specificcountry - 
payment/checkmo/payable_to - 
payment/checkmo/mailing_address - 
payment/checkmo/min_order_total - 
payment/checkmo/max_order_total - 
payment/checkmo/sort_order - 
payment/banktransfer/specificcountry - 
payment/banktransfer/instructions - 
payment/banktransfer/min_order_total - 
payment/banktransfer/max_order_total - 
payment/banktransfer/sort_order - 
payment/cashondelivery/specificcountry - 
payment/cashondelivery/instructions - 
payment/cashondelivery/min_order_total - 
payment/cashondelivery/max_order_total - 
payment/cashondelivery/sort_order - 
payment/purchaseorder/specificcountry - 
payment/purchaseorder/min_order_total - 
payment/purchaseorder/max_order_total - 
payment/purchaseorder/sort_order - 
payment/hosted_pro/active - 0
payment/hosted_pro/title - Payment by cards or by PayPal account
payment/hosted_pro/sort_order - 
payment/hosted_pro/payment_action - Authorization
payment/hosted_pro/display_ec - 0
payment/hosted_pro/allowspecific - 0
payment/hosted_pro/debug - 0
payment/hosted_pro/verify_peer - 1
In [ ]:
git clone https://github.com/amemoba/magento-i18n ~/amemoba-kobe/app/i18n/Magento
In [ ]:
cd ~/amemoba-kobe && bin/magento cache:clean
In [ ]:
rm ~/amemoba-kobe/pub/static/adminhtml/Magento/backend/zh_Hans_CN/js-translation.json
rm ~/amemoba-kobe/pub/static/frontend/Magento/luma/zh_Hans_CN/js-translation.json
In [ ]:
cd ~/amemoba-kobe && bin/magento setup:static-content:deploy -f zh_Hans_CN
cd ~/amemoba-kobe && bin/magento cache:flush
In [ ]:
cd /mnt/d && git clone https://github.com/magentoj/language-ja_JP magento-ja
Cloning into 'magento-ja'...
remote: Enumerating objects: 114, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 114 (delta 4), reused 9 (delta 3), pack-reused 98
Receiving objects: 100% (114/114), 1.56 MiB | 5.37 MiB/s, done.
Resolving deltas: 100% (53/53), done.
In [ ]:
mkdir -p ~/amemoba-kobe/app/i18n/Magento/ja_JP/
cp /mnt/d/magento-ja/composer.json ~/amemoba-kobe/app/i18n/Magento/ja_JP/
cp /mnt/d/magento-ja/language.xml ~/amemoba-kobe/app/i18n/Magento/ja_JP/
cp /mnt/d/magento-ja/LICENSE.txt ~/amemoba-kobe/app/i18n/Magento/ja_JP/
cp /mnt/d/magento-ja/LICENSE_AFL.txt ~/amemoba-kobe/app/i18n/Magento/ja_JP/
cp /mnt/d/magento-ja/registration.php ~/amemoba-kobe/app/i18n/Magento/ja_JP/
In [ ]:
cp /mnt/d/magento-ja/ja_JP.csv ~/amemoba-kobe/app/i18n/Magento/ja_JP/
In [ ]:
cd ~/amemoba-kobe && bin/magento cache:clean
In [ ]:
rm ~/amemoba-kobe/pub/static/adminhtml/Magento/backend/ja_JP/js-translation.json
rm ~/amemoba-kobe/pub/static/frontend/Magento/luma/ja_JP/js-translation.json
In [ ]:
cd ~/amemoba-kobe && bin/magento setup:static-content:deploy -f ja_JP
cd ~/amemoba-kobe && bin/magento cache:flush
In [ ]:
git clone https://github.com/degica/komoju-magento.git ~/komoju
Cloning into '/home/jupyter-saintway/komoju'...
remote: Enumerating objects: 1991, done.        
remote: Counting objects: 100% (1/1), done.        
remote: Total 1991 (delta 0), reused 0 (delta 0), pack-reused 1990        
Receiving objects: 100% (1991/1991), 2.53 MiB | 13.93 MiB/s, done.
Resolving deltas: 100% (844/844), done.
In [ ]:
cp -r ~/komoju/src/app/code/Komoju ~/magento2/app/code
In [ ]:
cd ~/magento2 && bin/magento setup:upgrade
cd ~/magento2 && bin/magento setup:di:compile
cd ~/magento2 && bin/magento cache:flush
In [ ]:
cd ~/magento2 && bin/magento -f setup:static-content:deploy
In [ ]:
sudo apt update
sudo apt install nodejs
sudo apt install npm
In [ ]:
npm -v
In [ ]:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  44046      0 --:--:-- --:--:-- --:--:-- 44088
=> Downloading nvm from git to '/home/saintway/.nvm'
=> Cloning into '/home/saintway/.nvm'...
remote: Enumerating objects: 360, done.
remote: Counting objects: 100% (360/360), done.
remote: Compressing objects: 100% (306/306), done.
remote: Total 360 (delta 41), reused 166 (delta 28), pack-reused 0
Receiving objects: 100% (360/360), 220.81 KiB | 5.52 MiB/s, done.
Resolving deltas: 100% (41/41), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /home/saintway/.bashrc
=> Appending bash_completion source string to /home/saintway/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
In [ ]:
nvm install 14
Downloading and installing node v14.21.3...
Downloading https://nodejs.org/dist/v14.21.3/node-v14.21.3-linux-x64.tar.xz...
######################################################################### 100.0%                                                                           0.1%
Computing checksum with sha256sum
Checksums matched!
Now using node v14.21.3 (npm v6.14.18)
Creating default alias: default -> 14 (-> v14.21.3)
In [ ]:
node -v
v14.21.3
In [ ]:
npm install hexo-cli -g
In [ ]:
hexo init ~/amemoba-kansai
In [ ]:
cd ~/amemoba-kansai && npm install
In [ ]:
git clone https://github.com/EvanNotFound/hexo-theme-redefine.git ~/amemoba-kansai/themes/redefine
Cloning into '/home/saintway/amemoba-kansai/themes/redefine'...
remote: Enumerating objects: 5374, done.
remote: Counting objects: 100% (1475/1475), done.
remote: Compressing objects: 100% (443/443), done.
remote: Total 5374 (delta 1118), reused 1219 (delta 1020), pack-reused 3899
Receiving objects: 100% (5374/5374), 42.71 MiB | 12.94 MiB/s, done.
Resolving deltas: 100% (3608/3608), done.
In [ ]:
wget https://amemoba.com/wpn/wp-content/themes/amemoba/images/favicon.ico -O ~/amemoba-kansai/themes/redefine/source/images/amemoba-favicon.ico
--2023-10-22 14:15:55--  https://amemoba.com/wpn/wp-content/themes/amemoba/images/favicon.ico
Resolving amemoba.com (amemoba.com)... 183.90.231.153
Connecting to amemoba.com (amemoba.com)|183.90.231.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4286 (4.2K) [image/vnd.microsoft.icon]
Saving to: ‘/home/saintway/amemoba-kansai/themes/redefine/source/images/amemoba-favicon.ico’

/home/saintway/amem 100%[===================>]   4.19K  --.-KB/s    in 0s      

2023-10-22 14:15:55 (1.25 GB/s) - ‘/home/saintway/amemoba-kansai/themes/redefine/source/images/amemoba-favicon.ico’ saved [4286/4286]

In [ ]:
wget https://amemoba.com/wpn/wp-content/themes/amemoba/images/common/header-logo.png -O ~/amemoba-kansai/themes/redefine/source/images/amemoba-avatar.png
--2023-10-22 14:39:07--  https://amemoba.com/wpn/wp-content/themes/amemoba/images/common/header-logo.png
Resolving amemoba.com (amemoba.com)... 183.90.231.153
Connecting to amemoba.com (amemoba.com)|183.90.231.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34002 (33K) [image/png]
Saving to: ‘/home/saintway/amemoba-kansai/themes/redefine/source/images/amemoba-avatar.png’

/home/saintway/amem 100%[===================>]  33.21K  --.-KB/s    in 0.001s  

2023-10-22 14:39:07 (21.7 MB/s) - ‘/home/saintway/amemoba-kansai/themes/redefine/source/images/amemoba-avatar.png’ saved [34002/34002]

In [ ]:
cd ~/amemoba-kansai && hexo server
INFO  Validating config
INFO  Start processing
INFO  Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.
INFO  
===================================================================
      ______ __  __  ______  __    __  ______                       
     /\__  _/\ \_\ \/\  ___\/\ "-./  \/\  ___\                      
     \/_/\ \\ \  __ \ \  __\\ \ \-./\ \ \  __\                      
        \ \_\\ \_\ \_\ \_____\ \_\ \ \_\ \_____\                    
         \/_/ \/_/\/_/\/_____/\/_/  \/_/\/_____/                    
                                                               
 ______  ______  _____   ______  ______ __  __   __  ______    
/\  == \/\  ___\/\  __-./\  ___\/\  ___/\ \/\ "-.\ \/\  ___\   
\ \  __<\ \  __\\ \ \/\ \ \  __\\ \  __\ \ \ \ \-.  \ \  __\   
 \ \_\ \_\ \_____\ \____-\ \_____\ \_\  \ \_\ \_\\"\_\ \_____\ 
  \/_/ /_/\/_____/\/____/ \/_____/\/_/   \/_/\/_/ \/_/\/_____/
                                                               
  Github: https://github.com/EvanNotFound/hexo-theme-redefine
      current version is v2.5.0,latest version is v2.5.0
===================================================================
In [ ]:
cd ~/amemoba-kansai && npm install hexo-deployer-git --save

Bash

In [ ]:
wget https://amemoba.com/wpn/wp-content/themes/amemoba/images/favicon.ico -O ~/amemoba-kansai/themes/keep/source/images/amemoba-favicon.ico
--2023-11-08 19:16:54--  https://amemoba.com/wpn/wp-content/themes/amemoba/images/favicon.ico
Resolving amemoba.com (amemoba.com)... 183.90.231.153
Connecting to amemoba.com (amemoba.com)|183.90.231.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4286 (4.2K) [image/vnd.microsoft.icon]
Saving to: ‘/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-favicon.ico’

/home/saintway/amem 100%[===================>]   4.19K  --.-KB/s    in 0s      

2023-11-08 19:16:54 (889 MB/s) - ‘/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-favicon.ico’ saved [4286/4286]

In [ ]:
pip install pillow
Defaulting to user installation because normal site-packages is not writeable
Collecting pillow
  Downloading Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (3.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 7.1 MB/s eta 0:00:00[36m0:00:01[36m0:00:01
Installing collected packages: pillow
Successfully installed pillow-10.1.0

Python

In [ ]:
from PIL import Image

# 打开图片
image = Image.open('/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-favicon.png')

# 将图像转换为 RGBA 模式(如果尚未为 RGBA)
image = image.convert('RGBA')

# 获取图片的尺寸
width, height = image.size

# 处理每个像素
for x in range(width):
    for y in range(height):
        r, g, b, a = image.getpixel((x, y))

        # 判断像素是否为红色(根据具体情况来判断颜色)
        if r > 150 and g < 100 and b < 100:
            # 将红色部分替换为蓝色
            image.putpixel((x, y), (b, g, r, a))  # 设置像素为蓝色并保持原透明度
        else:
            # 在新图像上复制原图的非红色部分
            image.putpixel((x, y), (r, g, b, a))

# 保存修改后的图片
image.save('/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-favicon.png')

Bash

In [ ]:
wget https://amemoba.com/wpn/wp-content/themes/amemoba/images/common/header-logo.png -O ~/amemoba-kansai/themes/keep/source/images/amemoba-avatar.png
--2023-11-08 17:25:09--  https://amemoba.com/wpn/wp-content/themes/amemoba/images/common/header-logo.png
Resolving amemoba.com (amemoba.com)... 183.90.231.153
Connecting to amemoba.com (amemoba.com)|183.90.231.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 34002 (33K) [image/png]
Saving to: ‘/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-avatar.png’

/home/saintway/amem 100%[===================>]  33.21K  --.-KB/s    in 0s      

2023-11-08 17:25:09 (84.7 MB/s) - ‘/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-avatar.png’ saved [34002/34002]


Python

In [ ]:
from PIL import Image

# 打开图片
image = Image.open('/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-avatar.png')

# 将图像转换为 RGBA 模式(如果尚未为 RGBA)
image = image.convert('RGBA')

# 获取图片的尺寸
width, height = image.size

# 处理每个像素
for x in range(width):
    for y in range(height):
        r, g, b, a = image.getpixel((x, y))

        # 判断像素是否为红色(根据具体情况来判断颜色)
        if r > 150 and g < 100 and b < 100:
            # 将红色部分替换为蓝色
            image.putpixel((x, y), (b, g, r, a))  # 设置像素为蓝色并保持原透明度
        else:
            # 在新图像上复制原图的非红色部分
            image.putpixel((x, y), (r, g, b, a))

# 保存修改后的图片
image.save('/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-avatar.png')
In [ ]:
from PIL import Image

# 打开图片
image = Image.open('/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-avatar.png')

# 将图像转换为 RGBA 模式(如果尚未为 RGBA)
image = image.convert('RGBA')

# 获取图片的尺寸
width, height = image.size

# 处理每个像素
for x in range(width):
    for y in range(height):
        r, g, b, a = image.getpixel((x, y))

        # 判断像素是否为蓝色(根据具体情况来判断颜色)
        if r < 100 and g < 100 and b > 150:
            # 将蓝色部分替换为红色
            image.putpixel((x, y), (b, g, r, a))  # 设置像素为红色并保持原透明度
        else:
            # 在新图像上复制原图的非蓝色部分
            image.putpixel((x, y), (r, g, b, a))

# 保存修改后的图片
image.save('/home/saintway/amemoba-kansai/themes/keep/source/images/amemoba-avatar.png')
In [ ]:
 
Read More

2023-08-07
漢字文から音読み文に転換

Python で、漢字文から音読み文に転換します。

In [ ]:
# 漢字から音読みに変換する対応表
kanji_to_onyomi = {
    '神': 'シン',
    '是': 'ゼ',
    '信': 'シン',
    '実': 'ジツ',
    '的': 'テキ',
    '你': 'ジ',
    '們': 'モン',
    '乃': 'ナイ',
    '是': 'ゼ',
    '爲': 'イ',
    '他': 'タ',
    '所': 'ショ',
    '召': 'ショウ',
    '進': 'シン',
    '入': 'ニュウ',
    '了': 'リョウ',
    '儿': 'ジン',
    '子': 'ス',
    '我': 'ガ',
    '主': 'シュ',
    '耶': 'ヤ',
    '穌': 'ソ',
    '基': 'キ',
    '督': 'トク',
    '的': 'テキ',
    '交': 'コウ',
    '通': 'ツウ',
    # 他の漢字と音読みの対応を追加
}

def convert_to_onyomi_sentence(input_sentence):
    # 入力された漢字文を音読み文に変換する関数
    words = list(input_sentence)  # 文を単語に分割
    onyomi_sentence = []

    for word in words:
        onyomi = kanji_to_onyomi.get(word, word)  # 辞書から音読みを取得、なければそのまま単語を使用
        onyomi_sentence.append(onyomi)

    return ''.join(onyomi_sentence)

# 漢字文を入力
input_sentence = '神是信実的,你們乃是爲他所召,進入了他儿子我們主耶穌基督的交通。'
# 音読み文に変換
result = convert_to_onyomi_sentence(input_sentence)
print(result)  # 出力: "シンゼシンジツテキ,ジモンナイゼイタショショウ,シンニュウリョウタジンスガモンシュヤソキトクテキコウツウ。"
シンゼシンジツテキ,ジモンナイゼイタショショウ,シンニュウリョウタジンスガモンシュヤソキトクテキコウツウ。

Janome で、漢字文から音読み文に転換します。

Janome を使って漢字文から音読み文に変換するには、まず漢字を形態素に分割し、それぞれの形態素に対応する音読みを取得する必要があります。ただし、Janome 自体は音読みを直接提供する機能はありません。そのため、別途辞書や API などから音読みを取得する必要があります。

以下は、辞書を使用して漢字文から音読み文に変換するサンプルコードです。このコードでは、kanji_to_onyomi という辞書に漢字と対応する音読みを登録し、入力された漢字文を音読み文に変換します。

In [ ]:
%%bash
pip install janome
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: janome in /home/jupyter-saintway/.local/lib/python3.9/site-packages (0.5.0)

Janome を使った日本語形態素解析の実践

このコードでは、Janome の Tokenizer を使って日本語の形態素解析を行い、文を形態素に分割しています。それぞれの形態素には、表層形(原形)と品詞などの情報が含まれています。

上記のコードを実行すると、入力した日本語の文が形態素に分割されて、表層形と品詞の情報が表示されるでしょう。Janome はシンプルで使いやすいライブラリなので、日本語の形態素解析に便利です。

In [ ]:
from janome.tokenizer import Tokenizer

# 漢字から音読みに変換する対応表(例としていくつかの漢字と音読みを登録)
kanji_to_onyomi = {
    '神': 'シン',
    '是': 'ゼ',
    '信': 'シン',
    '実': 'ジツ',
    '的': 'テキ',
    '你': 'ジ',
    '們': 'モン',
    '乃': 'ナイ',
    '是': 'ゼ',
    '爲': 'イ',
    '他': 'タ',
    '所': 'ショ',
    '召': 'ショウ',
    '進': 'シン',
    '入': 'ニュウ',
    '了': 'リョウ',
    '儿': 'ジン',
    '子': 'ス',
    '我': 'ガ',
    '主': 'シュ',
    '耶': 'ヤ',
    '穌': 'ソ',
    '基': 'キ',
    '督': 'トク',
    '的': 'テキ',
    '交': 'コウ',
    '通': 'ツウ',
    '信実': 'シンジツ',
    '進入': 'シンニュウ',
    '交通': 'コウツウ',
    # 他の漢字と音読みの対応を追加
}

def get_onyomi(token):
    # 漢字を対応表から検索し、音読みを取得する関数
    return kanji_to_onyomi.get(token.surface, token.surface)

def convert_to_onyomi_sentence(input_sentence):
    # 入力された漢字文を音読み文に変換する関数
    t = Tokenizer()
    tokens = t.tokenize(input_sentence)
    # print([token.surface for token in tokens])
    onyomi_sentence = []

    for token in tokens:
        onyomi = get_onyomi(token)
        onyomi_sentence.append(onyomi)
    print(onyomi_sentence)

    return ''.join(onyomi_sentence)

# 漢字文を入力
input_sentence = '神是信実的,你們乃是爲他所召,進入了他儿子我們主耶穌基督的交通。'
# 音読み文に変換
result = convert_to_onyomi_sentence(input_sentence)
print(result)  # 出力: 'シンゼシンジツテキ,ジモンナイゼイタショショウ,シンニュウリョウタジンスガモンシュヤソキトクテキコウツウ。'
['シン', 'ゼ', 'シンジツ', 'テキ', ',', '你們乃', 'ゼ', '爲他所', 'ショウ', ',', 'シンニュウ', 'リョウ', 'タ', '儿子我', '們主耶', '穌基督', 'テキ', 'コウツウ', '。']
シンゼシンジツテキ,你們乃ゼ爲他所ショウ,シンニュウリョウタ儿子我們主耶穌基督テキコウツウ。

MeCab で、UniDic で、漢字文から音読み文に転換します。

MeCab を使用して UniDic 辞書を利用し、漢字文から音読み文に変換するためには、以下の手順に従ってください。まず、Python で MeCab を使えるようにしてから、サンプルコードを提供します。


MeCab と UniDic のインストール

In [ ]:
%%bash
pip install unidic-lite
pip install mecab-python3
Defaulting to user installation because normal site-packages is not writeable
Collecting unidic-lite
  Downloading unidic-lite-1.0.8.tar.gz (47.4 MB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Building wheels for collected packages: unidic-lite
  Building wheel for unidic-lite (setup.py): started
  Building wheel for unidic-lite (setup.py): finished with status 'done'
  Created wheel for unidic-lite: filename=unidic_lite-1.0.8-py3-none-any.whl size=47658836 sha256=d354e3491cb194fab1fab224d3595dfa0419a6d75edec0bdd76fad8f60ec4d3a
  Stored in directory: /home/jupyter-saintway/.cache/pip/wheels/56/9c/4f/2c115e896b4b6c584039ca19de3581d333856782ef108cdc5c
Successfully built unidic-lite
Installing collected packages: unidic-lite
Successfully installed unidic-lite-1.0.8
Defaulting to user installation because normal site-packages is not writeable
Collecting mecab-python3
  Downloading mecab_python3-1.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (581 kB)
Installing collected packages: mecab-python3
Successfully installed mecab-python3-1.0.6

MeCab と UniDic を使用した漢字文の音読み変換

このコードでは、MeCab の Tagger に UniDic のパスを指定して、日本語の形態素解析を行い、漢字文を音読み文に変換しています。漢字の音読みは UniDic の「名詞固有名詞」のフィーチャー情報の7番目に格納されているため、それを取得しています。

注意:/path/to/unidic の部分は、UniDic 辞書の実際のインストールパスに置き換えてください。

また、UniDic に登録されていない単語や未知の単語に対しては、'*'として示されることがあります。その場合は元の漢字をそのまま使用します。さらに、Juman++ などの他の形態素解析エンジンや辞書を利用することも検討してください。

In [ ]:
import MeCab

# MeCab + UniDicを使って漢字文から音読みを取得する関数
def get_onyomi(text):
    try:
        mecab = MeCab.Tagger('-d /path/to/unidic')  # UniDicのパスを指定してください
        node = mecab.parse(text)
        onyomi_text = ''
        
        while node:
            features = node.feature.split(',')
            if len(features) > 7 and features[0] == '名詞' and features[1] == '固有名詞':
                onyomi_text += features[7] if features[7] != '*' else node.surface
            else:
                onyomi_text += node.surface

            node = node.next

        return onyomi_text

    except Exception as e:
        print('エラー:', e)
        return None

# 漢字文を入力
input_text = '漢字文を入力してください。'
# 音読みに変換
result = get_onyomi(input_text)
print(result)  # 出力例: '漢字文をニュウリョクシテクダサイ。'
In [ ]:
sudo apt update
sudo apt install cmake
In [ ]:
sudo apt update
sudo apt install protobuf-compiler libprotobuf-dev
In [ ]:
%%bash
git clone https://github.com/ku-nlp/jumanpp.git ~/jumanpp
In [ ]:
%%bash
mkdir -p ~/jumanpp/build
cd ~/jumanpp/build
cmake ~/jumanpp -DCMAKE_BUILD_TYPE=Release
cd ~/jumanpp
sudo make install

Jumandic 模型GPT 模型 都是用于自然语言处理的模型,但它们的设计目标、架构和应用场景有显著的不同。以下是对这两个模型的比较:

1. 目的与应用

  • Jumandic 模型(用于 Juman++)主要用于 日语形态素分析。它的目标是将日语文本分解成词和词性标注,并为每个单词生成详细的语法信息(例如词性、子类别等)。这是一个基于规则和词典的统计模型,适用于需要精确语法分析的任务,如日语文本解析和机器翻译。

    • 主要应用:日语文本分词、词性标注、句法分析。
  • GPT 模型(Generative Pre-trained Transformer)则是一个基于 深度学习 的生成模型,目标是生成连贯且具有上下文理解能力的自然语言文本。GPT 使用大量的预训练数据进行语言建模,能够生成新的文本、回答问题、进行对话等,适用于多种语言任务。

    • 主要应用:文本生成、对话系统、文本摘要、翻译、代码生成等。

2. 技术基础与架构

  • Jumandic 使用 基于词典的模型RNN(循环神经网络),结合了传统的基于规则的系统和现代深度学习技术。它通过大量的标注语料库来进行训练,优化形态素分析的精度要依赖于先验知识的词典和规则,适用于细粒度的语言解析。

  • GPT 是基于 Transformer 架构的深度学习模型,采用 自注意力机制 来理解和生成文本。GPT 是一种无监督学习模型,通过大规模的语料库进行预训练,然后通过微调(fine-tuning)来适应特定任务。

    • 该模型通过从大量数据中学习语言的统计规律来生成文本。

3. 数据与训练

  • Jumandic 依赖于 标注语料库,例如 京都大学语料库每日新闻语料库,这些语料库包含了手动标注的词汇和词性信息为输入。
  • GPT 则通过 大规模的未标注语料库 进行训练,例如网络文章、书籍、新闻报道等。它通过无监督学习方式训练,理解语言结构和上下文关系。

4. 生成能力

  • Jumandic 专注于 精确的词汇分割语法分析,主要任务是分解和标注文本中的每个词汇。因此,它并不生成新的文本或语句。
  • GPT 则是一种 生成模型,能够从给定的上下文生成自然流畅的文本,甚至在对话中模拟人类的语言反应。GPT 不仅能够解析文本,还能根据需求生成内容。

5. 模型训练与应用

  • Jumandic 于日语领域,通过对语料库进行训练来改进模型的解析能力。它适用于需要高精度的日语词汇分析和标注的任务。
  • GPT 作为一种通用的语言模型,能够处理范围更广,不仅限于特定语言(如日语),还支持多种语言的处理。GPT 适用于对话生成、文本摘要、创意写作等多种任务。

总结

  • Jumandic 是一个专门针对日语形言的详细解析与词性标注。
  • GPT 是一个通用的文本生成模型,能够在多种语言任务中进行推理和生成,适用于更广泛的自然语言处理任务。

尽管两者都是自然语言处理领域的重要模型,但它们各自的侧重点和应用场景有显著差异。


Juman++ 项目中,使用的 RNN(循环神经网络) 是一种语言模型,具体称为 RNNLM(Recurrent Neural Network Language Model)。这个 RNNLM 主要用于提高形态素解析的准确性,通过考虑单词序列的语义合理性来进行更准确的词性标注和分词。

RNNLM 的特点

  1. 语言模型的用途

    • RNNLM 在 Juman++ 中用于判断单词序列的语义自然性。通过这种方式,解析器不仅依赖于规则和统计模型,还结合了上下文的语义信息。
  2. 实现细节

    • Juman++ 提供了对 Mikolov RNN(一种经典的 RNN 语言模型)的支持。
    • RNN 模型能够预测下一个单词,或者评估给定单词序列的概率,从而在分词和词性标注时帮助选择最合理的候选项。
  3. 训练与集成

    • RNN 模型通常需要通过大量标注语料库进行训练,如 Mainichi Shinbun(每日新闻语料库 1995)Kyoto University Corpus
    • 在 Juman++ 的训练过程中,可以通过命令行参数 --rnn-model 加载预训练的 RNN 模型文件。
  4. 代码中的应用

    • 在 Juman++ 源代码的 mikolov_rnn_test.cc 文件中,可以看到 RNN 模型的推理过程和上下文处理的实现。
  5. 性能提升

    • 使用 RNNLM 后,Juman++ 的解析速度和准确性有显著提升,解析速度比原版 Juman 提高了超过 250 倍。

总结

  • Juman++ 使用 RNNLM 来增强形态素解析的上下文理解能力。
  • RNN 模型的实现基于 Mikolov RNN,并通过训练语料库学习单词序列的语义关系。
  • 在实际应用中,通过参数 --rnn-model 加载预训练 RNN 模型来提高解析质量。
In [ ]:
%%bash
cd ~ && wget https://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.02.tar.xz
In [ ]:
%%bash
cd ~ && tar xJvf ~/jumanpp-1.02.tar.xz

On Linux

In [ ]:
%%bash
sudo apt update
sudo apt install libboost-all-dev

On macOS

In [ ]:
%%bash
brew install boost
In [ ]:
%%bash
cd ~/jumanpp-1.02
./configure
make
sudo make install

Scoop on Windows 11

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
scoop bucket add main
scoop install main/cmake
scoop install main/make

Ubuntu

sudo apt update
sudo apt install g++-10 clang cmake
sudo apt install libprotobuf-dev protobuf-compiler
cd ~ && tar xvf jumanpp-2.0.0-rc4.tar.xz
mkdir -p ~/jumanpp-2.0.0-rc4/build
cd ~/jumanpp-2.0.0-rc4/build && cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_POLICY_VERSION_MINIMUM=3.5
cd ~/jumanpp-2.0.0-rc4/build && make install -j 4
sudo make install

使用 Juman 进行日语解析和 LaTeX 格式化的工具

A Tool for Japanese Parsing and LaTeX Formatting Using Juman

In [ ]:
%%bash
pip install pyknp
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pyknp in /home/jupyter-saintway/.local/lib/python3.9/site-packages (0.6.1)
Requirement already satisfied: six in /home/jupyter-saintway/.local/lib/python3.9/site-packages (from pyknp) (1.16.0)
In [ ]:
from pyknp import Juman
juman = Juman()

def halfwidth_to_fullwidth(text):
    result = ''
    for char in text:
        code = ord(char)
        if code == ord(' '):
            result += ' '
        elif ord('!') <= code <= ord('~'):
            # Convert ASCII characters in the range 0x0021 to 0x007E
            result += chr(code + 0xFEE0)
        else:
            result += char
    return result

def render(text):
    for line in halfwidth_to_fullwidth(text).split('\n'):
        if line == '':
            yield '\n'
            continue
        mrphs = juman.analysis(line).mrph_list()
        for mrph in mrphs:
            if mrph.midasi == mrph.yomi:
                yield mrph.midasi
            else:
                yield ' {}{}]'.format(
                    mrph.midasi,
                    mrph.yomi
                )
        yield '\n'

def render_to_latex(text):
    for line in halfwidth_to_fullwidth(text).split('\n'):
        if line == '':
            yield '\n'
            continue
        mrphs = juman.analysis(line).mrph_list()
        for mrph in mrphs:
            yield f'\\frac{{{mrph.yomi}}}{{{mrph.midasi}}}'
        yield '\n'
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
朝の養い

啓21:3 ……見よ、神の幕屋が人と共にある.神は彼らと共に幕屋を張り……
22 わたしはその中に宮を見なかった.主なる神、全能者と小羊が、その宮だからである。

 わたしは七十年以上を費やして聖書を学びましたが、ごく最近になって、聖書が実はただ一つの事、すなわち宇宙的な合併を明らかにしていることを見ました。目的を持つ神にはエコノミーがあり、彼は彼のエコノミーの中で、宇宙的な合併を持つことを意図されます。
 わたしたちは、新エルサレムが神のエコノミーの目標であることを見てきましたが、新エルサレムが一つの合併であることを見ませんでした。啓示録第21章2節で使徒ヨハネは、「わたしはまた聖なる都、新エルサレム……を見た」と言い、次の節では「神の幕屋」としての新エルサレムについて語っています。神の幕屋として、新エルサレムは神の住まいであり、……[また]宇宙的な合併です。(リー全集、1994年―1997年、第5巻(下)、「御父により神聖な栄光をもってキリストの栄光が現されたことの結果」、第4編)
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{あさ}{朝}\frac{の}{の}\frac{やしない}{養い}$
$\displaystyle $
$\displaystyle \frac{ひらく}{啓}\frac{21}{21}\frac{:}{:}\frac{3}{3}\frac{ }{ }\frac{……}{……}\frac{みよ}{見よ}\frac{、}{、}\frac{かみ}{神}\frac{の}{の}\frac{まくや}{幕屋}\frac{が}{が}\frac{じん}{人}\frac{と}{と}\frac{ともに}{共に}\frac{ある}{ある}\frac{.}{.}\frac{かみ}{神}\frac{は}{は}\frac{かれ}{彼}\frac{ら}{ら}\frac{と}{と}\frac{ともに}{共に}\frac{まくや}{幕屋}\frac{を}{を}\frac{はり}{張り}\frac{……}{……}$
$\displaystyle \frac{22}{22}\frac{ }{ }\frac{わたし}{わたし}\frac{は}{は}\frac{その}{その}\frac{なか}{中}\frac{に}{に}\frac{みや}{宮}\frac{を}{を}\frac{み}{見}\frac{なかった}{なかった}\frac{.}{.}\frac{おもなる}{主なる}\frac{かみ}{神}\frac{、}{、}\frac{ぜん}{全}\frac{のう}{能}\frac{しゃ}{者}\frac{と}{と}\frac{しょう}{小}\frac{ひつじ}{羊}\frac{が}{が}\frac{、}{、}\frac{その}{その}\frac{みや}{宮}\frac{だ}{だ}\frac{から}{から}\frac{である}{である}\frac{。}{。}$
$\displaystyle $
$\displaystyle \frac{わたし}{わたし}\frac{は}{は}\frac{七十}{七十}\frac{ねん}{年}\frac{いじょう}{以上}\frac{を}{を}\frac{ついやして}{費やして}\frac{せいしょ}{聖書}\frac{を}{を}\frac{まなび}{学び}\frac{ました}{ました}\frac{が}{が}\frac{、}{、}\frac{ごく}{ごく}\frac{さいきん}{最近}\frac{に}{に}\frac{なって}{なって}\frac{、}{、}\frac{せいしょ}{聖書}\frac{が}{が}\frac{じつは}{実は}\frac{ただ}{ただ}\frac{一}{一}\frac{つ}{つ}\frac{の}{の}\frac{じ}{事}\frac{、}{、}\frac{すなわち}{すなわち}\frac{うちゅう}{宇宙}\frac{てきな}{的な}\frac{がっぺい}{合併}\frac{を}{を}\frac{あきらかに}{明らかに}\frac{して}{して}\frac{いる}{いる}\frac{こと}{こと}\frac{を}{を}\frac{み}{見}\frac{ました}{ました}\frac{。}{。}\frac{もくてき}{目的}\frac{を}{を}\frac{もつ}{持つ}\frac{かみ}{神}\frac{に}{に}\frac{は}{は}\frac{エコノミー}{エコノミー}\frac{が}{が}\frac{あり}{あり}\frac{、}{、}\frac{かれ}{彼}\frac{は}{は}\frac{かれ}{彼}\frac{の}{の}\frac{エコノミー}{エコノミー}\frac{の}{の}\frac{なか}{中}\frac{で}{で}\frac{、}{、}\frac{うちゅう}{宇宙}\frac{てきな}{的な}\frac{がっぺい}{合併}\frac{を}{を}\frac{もつ}{持つ}\frac{こと}{こと}\frac{を}{を}\frac{いと}{意図}\frac{さ}{さ}\frac{れ}{れ}\frac{ます}{ます}\frac{。}{。}$
$\displaystyle \frac{わたし}{わたし}\frac{たち}{たち}\frac{は}{は}\frac{、}{、}\frac{しん}{新}\frac{えるされむ}{エルサレム}\frac{が}{が}\frac{かみ}{神}\frac{の}{の}\frac{エコノミー}{エコノミー}\frac{の}{の}\frac{もくひょう}{目標}\frac{である}{である}\frac{こと}{こと}\frac{を}{を}\frac{みて}{見て}\frac{き}{き}\frac{ました}{ました}\frac{が}{が}\frac{、}{、}\frac{しん}{新}\frac{えるされむ}{エルサレム}\frac{が}{が}\frac{一}{一}\frac{つ}{つ}\frac{の}{の}\frac{がっぺい}{合併}\frac{である}{である}\frac{こと}{こと}\frac{を}{を}\frac{み}{見}\frac{ませ}{ませ}\frac{ん}{ん}\frac{でした}{でした}\frac{。}{。}\frac{けいじ}{啓示}\frac{ろく}{録}\frac{だい}{第}\frac{21}{21}\frac{しょう}{章}\frac{2}{2}\frac{せつ}{節}\frac{で}{で}\frac{しと}{使徒}\frac{ヨハネ}{ヨハネ}\frac{は}{は}\frac{、}{、}\frac{「}{「}\frac{わたし}{わたし}\frac{は}{は}\frac{また}{また}\frac{せいなる}{聖なる}\frac{と}{都}\frac{、}{、}\frac{しん}{新}\frac{えるされむ}{エルサレム}\frac{……}{……}\frac{を}{を}\frac{みた}{見た}\frac{」}{」}\frac{と}{と}\frac{いい}{言い}\frac{、}{、}\frac{つぎの}{次の}\frac{せつ}{節}\frac{で}{で}\frac{は}{は}\frac{「}{「}\frac{かみ}{神}\frac{の}{の}\frac{まくや}{幕屋}\frac{」}{」}\frac{と}{と}\frac{して}{して}\frac{の}{の}\frac{しん}{新}\frac{えるされむ}{エルサレム}\frac{に}{に}\frac{ついて}{ついて}\frac{かたって}{語って}\frac{い}{い}\frac{ます}{ます}\frac{。}{。}\frac{かみ}{神}\frac{の}{の}\frac{まくや}{幕屋}\frac{と}{と}\frac{して}{して}\frac{、}{、}\frac{しん}{新}\frac{えるされむ}{エルサレム}\frac{は}{は}\frac{かみ}{神}\frac{の}{の}\frac{すまい}{住まい}\frac{であり}{であり}\frac{、}{、}\frac{……}{……}\frac{[}{[}\frac{また}{また}\frac{]}{]}\frac{うちゅう}{宇宙}\frac{てきな}{的な}\frac{がっぺい}{合併}\frac{です}{です}\frac{。}{。}\frac{(}{(}\frac{りー}{リー}\frac{ぜんしゅう}{全集}\frac{、}{、}\frac{1994}{1994}\frac{ねん}{年}\frac{―}{―}\frac{1997}{1997}\frac{ねん}{年}\frac{、}{、}\frac{だい}{第}\frac{5}{5}\frac{かん}{巻}\frac{(}{(}\frac{した}{下}\frac{)}{)}\frac{、}{、}\frac{「}{「}\frac{ご}{御}\frac{ちち}{父}\frac{に}{に}\frac{より}{より}\frac{しんせいな}{神聖な}\frac{えいこう}{栄光}\frac{を}{を}\frac{もって}{もって}\frac{キリスト}{キリスト}\frac{の}{の}\frac{えいこう}{栄光}\frac{が}{が}\frac{あらわさ}{現さ}\frac{れた}{れた}\frac{こと}{こと}\frac{の}{の}\frac{けっか}{結果}\frac{」}{」}\frac{、}{、}\frac{だい}{第}\frac{4}{4}\frac{へん}{編}\frac{)}{)}$
$\displaystyle $
In [ ]:
for word in render("""
朝の養い

啓21:9-11 ……「ここに来なさい.あなたに小羊の妻である花嫁を見せよう」。そして彼はわたしを霊の中で、大きな高い山へ連れて行き、聖なる都エルサレムが、天から出て神から下って来るのをわたしに見せたが、それは神の栄光を持っていた。その光は最も尊い宝石のようであり、水晶のように透明な碧玉のようであった。

 新約の主要な内容とは、三一の神がご自身の大いなる喜びにしたがって永遠のエコノミーを持っておられ、それは彼の命と性質の中でご自身を彼の選ばれ、贖われた民の中へと分与し、それによって彼らをご自身の複製とし、彼らが彼を表現するためであるということです。この団体の表現は新エルサレムにおいて究極的に完成します(エペソ3:9.1:9-23)。聖書の究極的な完成である新エルサレムは、神が人と成ることと、人が神格においてではなく、命と性質において神となることと関係があります(啓21:2.3:12)。キリストの中で、神は人と成り、人を彼の命と性質において神とします。それによって贖う神と贖われた人は、共にミングリングされ、構成されて、一つの実体、すなわち新エルサレムとなることができます(21:3、22)。最終的に、三一の、永遠の神は新エルサレムとなってわたしたちすべてと合併し、わたしたちもまた神の有機的な救いの過程を通して(ローマ5:10)、新エルサレムとなります。(「新約の結論(25)」、メッセージ428)
"""):
    print(word, end='')
 朝[あさ]の 養い[やしない]

 啓[ひらく]21:9-11 ……「ここに来なさい.あなたに 小[しょう] 羊[ひつじ]の 妻[つま]である 花嫁[はなよめ]を 見せよう[みせよう]」。そして 彼[かれ]はわたしを 霊[れい]の 中[なか]で、 大きな[おおきな] 高い[たかい] 山[やま]へ 連れて[つれて] 行き[いき]、 聖なる[せいなる] 都[みやこ] エルサレム[えるされむ]が、 天から[てんから] 出て[でて] 神[かみ]から 下って[くだって] 来る[くる]のをわたしに 見せた[みせた]が、それは 神[かみ]の 栄光[えいこう]を 持って[もって]いた。その 光[ひかり]は 最も[もっとも] 尊い[とうとい] 宝石[ほうせき]のようであり、 水晶[すいしょう]のように 透明な[とうめいな] 碧玉[へきぎょく]のようであった。

 新約[しんやく]の 主要な[しゅような] 内容[ないよう]とは、三一の 神[かみ]がご 自身[じしん]の 大いなる[おおいなる] 喜び[よろこび]にしたがって 永遠の[えいえんの]エコノミーを 持って[もって]おられ、それは 彼[かれ]の 命[いのち]と 性質[せいしつ]の 中[なか]でご 自身[じしん]を 彼[かれ]の 選ば[えらば]れ、贖われた 民[みん]の 中[なか]へと 分与[ぶんよ]し、それによって 彼[かれ]らをご 自身[じしん]の 複製[ふくせい]とし、 彼[かれ]らが 彼[かれ]を 表現[ひょうげん]するためであるということです。この 団体[だんたい]の 表現[ひょうげん]は 新[しん] エルサレム[えるされむ]において 究極[きゅうきょく] 的に[てきに] 完成[かんせい]します(エペソ3:9.1:9-23)。 聖書[せいしょ]の 究極[きゅうきょく] 的な[てきな] 完成[かんせい]である 新[しん] エルサレム[えるされむ]は、 神[かみ]が 人[じん]と 成る[なる]ことと、 人[じん]が 神格[しんかく]においてではなく、 命[いのち]と 性質[せいしつ]において 神[かみ]となることと 関係[かんけい]があります( 啓[ひらく]21:2.3:12)。キリストの 中[なか]で、 神[かみ]は 人[じん]と 成り[なり]、 人[じん]を 彼[かれ]の 命[いのち]と 性質[せいしつ]において 神[かみ]とします。それによって贖う 神[かみ]と贖われた 人[じん]は、 共に[ともに]ミングリングされ、 構成[こうせい]されて、一つの 実体[じったい]、すなわち 新[しん] エルサレム[えるされむ]となることができます(21:3、22)。 最終[さいしゅう] 的に[てきに]、三一の、 永遠の[えいえんの] 神[かみ]は 新[しん] エルサレム[えるされむ]となってわたしたちすべてと 合併[がっぺい]し、わたしたちもまた 神[かみ]の 有機[ゆうき] 的な[てきな] 救い[すくい]の 過程[かてい]を 通して[とおして]( ローマ[ろーま]5:10)、 新[しん] エルサレム[えるされむ]となります。(「 新約[しんやく]の 結論[けつろん](25)」、 メッセージ[めっせーじ]428)

In [ ]:
for word in render("""
神是信実的,你們乃是爲他所召,進入了他儿子我們主耶穌基督的交通。
"""):
    print(word, end='')
 神[かみ]是信 実[み] 的[てき],你們 乃[だい] 是[ぜ]爲他 所[しょ] 召[めし], 進入[しんにゅう] 了[りょう] 他[た]儿子我們 主[しゅ]耶穌基督 的[てき] 交通[こうつう]。

In [ ]:
for word in render("""
神、是、信、実、的,你、們、乃、是、爲、他、所、召,進、入、了、他、儿、子、我、們、主、耶、穌、基、督、的、交、通。
"""):
    print(word, end='')
 神[かみ]、 是[ぜ]、 信[しん]、 実[み]、 的[てき],你、們、 乃[だい]、 是[ぜ]、爲、 他[ほか]、 所[しょ]、 召[めし], 進[しん]、 入[はいり]、 了[りょう]、 他[ほか]、儿、 子[し]、 我[われ]、們、 主[おも]、耶、穌、 基[もと]、督、 的[てき]、交、 通[つう]。


jumanpp_train.cc

In [ ]:
%%bash
git clone https://github.com/ku-nlp/KyotoCorpus
In [ ]:
%%bash
git clone https://github.com/ku-nlp/jumanpp-jumandic
In [ ]:
%%bash
cd ~/nlp/jumanpp-jumandic/ && python3 configure.py
In [ ]:
%%bash
sudo apt-get update
sudo apt-get install zsh
In [ ]:
%%bash
sudo apt-get update
sudo apt-get install ruby-full
In [ ]:
%%bash
mkdir -p ~/nlp/jumanpp-jumandic/bld/corpora
cd ~/nlp/jumanpp-jumandic/ && make corpora
In [ ]:
%%bash
cd ~/nlp/jumanpp-jumandic/ && make ~/nlp/jumanpp-jumandic/bld/models/jumandic.bin
In [ ]:
%%bash
sudo apt update
sudo apt install cmake
In [ ]:
%%bash
rm -rf ~/nlp/jumanpp-jumandic/bld/jpp/
In [ ]:
%%bash
cd ~/nlp/jumanpp-jumandic/ && make rnn
In [ ]:
%%bash
cd ~/nlp/jumanpp-jumandic/bld/jpp && make install
In [ ]:
%%bash
mkdir -p /usr/local/libexec/jumanpp
cat << EOF > /usr/local/libexec/jumanpp/jumandic.config
--model=$HOME/nlp/jumanpp-jumandic/bld/models/jumandic-rnn.model
--rnn-nce-bias=5.62844432562
--rnn-unk-constant=-3.4748115191
--rnn-unk-length=-2.92994951022
--feature-weight-perceptron=1
--feature-weight-rnn=0.0176
EOF

jumanpp test

In [ ]:
from ipymock.nlp import annotate
from IPython.display import display, HTML

answser = ''
line = ''

for word in annotate('''
兄弟姉妹、主の内で平安を祈ります!私たち信者は召されて、メシアを受け入れ、経験し、楽しむべきです。彼こそが私たちの王、主、頭、そして霊的な夫であるべきです。まず、私たちはメシアを王として迎え入れ、良心を清め、心を澄ませて、彼の御座が私たちの中で支配することを許すべきです。次に、私たちの主として、彼の愛が私たちを古い自分のために生きることをやめさせ、完全に彼の支配に従い、すべてのことにおいて彼を喜ばせるように動機付けます。また、教会の生活の中でメシアを頭として経験し、彼の権威を体験し、彼から命の供給を受け、メシアの体を建て上げていきます。最終的に、私たちはメシアを霊的な夫として楽しみ、彼との親密な関係を築き、新しいエルサレムの栄光の完成を迎える準備をします。私たちがこのような経験の中に入って、神が喜ばれる道を歩むことができますように。アーメン!
'''):
    answser += word
    if word == '\n':
        display(HTML(line))
        line = ''
    else:
        line += word
In [ ]:
from ipymock.nlp import annotate
from IPython.display import display, HTML
answser = ''
line = ''
for word in annotate('E.わたしたちが他の人をどの程度、神へともたらすことができるかは常に、わたしたちが神との関係においてどこにいるかによって測られます。わたしたちは神の中にいればいるほど、ますます他の人を和解させて、神の中へともたらすことができます。パウロは至聖所の中にいた人であったので、信者たちに、至聖所に「進み出(る)(come forward)」ように命じることができました(「出て行く(go forward)」ではない)―Ⅱコリント12:2前半.5:20.ヘブル10:22:'):
    answser += word
    if word == '\n':
        display(HTML(line))
        line = ''
    else:
        line += word
answser
In [ ]:
from ipymock.nlp import annotate, halfwidth_to_fullwidth
from IPython.display import display, HTML
answser = ''
line = ''
for word in annotate(halfwidth_to_fullwidth('E.わたしたちが他の人をどの程度、神へともたらすことができるかは常に、わたしたちが神との関係においてどこにいるかによって測られます。わたしたちは神の中にいればいるほど、ますます他の人を和解させて、神の中へともたらすことができます。パウロは至聖所の中にいた人であったので、信者たちに、至聖所に「進み出(る)(come forward)」ように命じることができました(「出て行く(go forward)」ではない)―Ⅱコリント12:2前半.5:20.ヘブル10:22:')):
    answser += word
    if word == '\n':
        display(HTML(line))
        line = ''
    else:
        line += word
answser

annotate epub

In [ ]:
filename = '朝202409月全国特別集会'
In [ ]:
import os
import shutil
import zipfile

def unzip_epub(epub_file_path):
    # Get the absolute path and name of the file
    epub_file_path = os.path.abspath(epub_file_path)
    # Generate a folder path with the same name
    output_dir = os.path.splitext(epub_file_path)[0]

    if os.path.exists(output_dir):
        shutil.rmtree(output_dir)  # Delete a non-empty directory

    # Ensure the output directory exists
    os.makedirs(output_dir)

    # Open and extract the .epub file
    with zipfile.ZipFile(epub_file_path, 'r') as zip_ref:
        zip_ref.extractall(output_dir)
        print(f'The .epub file has been extracted to: {output_dir}')

# Replace with your .epub file path
unzip_epub(f'{filename}.epub')
pip install beautifulsoup4
pip install lxml
In [ ]:
import glob
from ipymock.nlp import annotate_html

# Define file path patterns
file_pattern = f'{filename}/OEBPS/Text/[0-9]*Week_*.xhtml'

# Get a list of files that meet the conditions
file_list = glob.glob(file_pattern)

results = []
# Iterate through the files and read their contents
for file_path in file_list:
    # Read the file contents
    with open(file_path, 'r', encoding='utf-8') as file:
        content = file.read()

    result = annotate_html(content.replace('イエス', 'ミヤス').replace('キリスト', 'メシア'))
    print(f'Result for {file_path}:\n\n', result)
    results.append(result)

    # Write the modified content back to the file
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(result)
In [ ]:
import os
import zipfile

def folder_to_epub(folder_path):
    # Get the absolute path and name of the folder
    folder_path = os.path.abspath(folder_path)
    folder_name = os.path.splitext(folder_path)[0]

    # Generate a .zip file path with the same name
    zip_path = f'{folder_name}.zip'

    # Create a .zip file
    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, _, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                # Ensure the relative path structure is preserved inside the .zip file
                arcname = os.path.relpath(file_path, folder_path)
                zipf.write(file_path, arcname)

    # Generate the .epub file path
    epub_path = f'{folder_name}メシア.epub'

    # Rename the .zip file to an .epub file
    os.rename(zip_path, epub_path)
    print(f'The .epub file has been created: {epub_path}')

# Replace with the folder path you want to compress
folder_to_epub(f'{filename}')

Python で、偽日本語文から音読み文に転換します。


PyKakasi

pykakasi is a Python Natural Language Processing (NLP) library to transliterate hiragana, katakana and kanji (Japanese text) into rōmaji (Latin/Roman alphabet). It can handle characters in NFC form.

In [ ]:
%%bash
pip install pykakasi
Defaulting to user installation because normal site-packages is not writeable
Collecting pykakasi
  Downloading pykakasi-2.2.1-py3-none-any.whl (2.4 MB)
Collecting jaconv
  Downloading jaconv-0.3.4.tar.gz (16 kB)
  Preparing metadata (setup.py): started
  Preparing metadata (setup.py): finished with status 'done'
Collecting deprecated
  Downloading Deprecated-1.2.14-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: wrapt<2,>=1.10 in /home/jupyter-saintway/.local/lib/python3.9/site-packages (from deprecated->pykakasi) (1.15.0)
Building wheels for collected packages: jaconv
  Building wheel for jaconv (setup.py): started
  Building wheel for jaconv (setup.py): finished with status 'done'
  Created wheel for jaconv: filename=jaconv-0.3.4-py3-none-any.whl size=16415 sha256=ee5ab10be02623d85b0962dad372b01ad36a876b0a7421e27fb0ab4c8bdcff9d
  Stored in directory: /home/jupyter-saintway/.cache/pip/wheels/49/de/f1/55f605920db3666d30215331bc85f24686dde9b95b473ae41b
Successfully built jaconv
Installing collected packages: jaconv, deprecated, pykakasi
Successfully installed deprecated-1.2.14 jaconv-0.3.4 pykakasi-2.2.1
In [ ]:
import pykakasi
kks = pykakasi.kakasi()
text = '神是信実的,你們乃是爲他所召,進入了他儿子我們主耶穌基督的交通。'
result = kks.convert(text)
print(
    ''.join(
        '{}{}]'.format(
            item['orig'],
            item['hepburn']
        ) for item in result
    )
)
神[kami]是信[zeshin]実[mi]的[teki],[,]你[]們[ra]乃[no]是[kore]爲[tame]他所[tasho]召[shou],[,]進入[shinnyuu]了[ryou]他[hoka]儿[nin]子[ko]我們[warera]主[shu]耶穌[yaso]基督[kirisuto]的[teki]交通。[koutsuu.]
In [1]:
import pykakasi
kks = pykakasi.kakasi()

def halfwidth_to_fullwidth(text):
    result = ''
    for char in text:
        code = ord(char)
        if code == ord(' '):
            result += ' '
        elif ord('!') <= code <= ord('~'):
            # Convert ASCII characters in the range 0x0021 to 0x007E
            result += chr(code + 0xFEE0)
        else:
            result += char
    return result

def render_to_latex(text):
    for line in halfwidth_to_fullwidth(text).split('\n'):
        if line == '':
            yield '\n'
            continue
        for word in kks.convert(line):
            if word['orig'] == '\n':
                yield '\n'
            elif word['kana'] == '':
                yield f'\\frac{{{word["orig"]}}}{{{word["orig"]}}}'
            else:
                yield f'\\frac{{{word["kana"]}}}{{{word["orig"]}}}'
        yield '\n'
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
神是信実的,你們乃是爲他所召,進入了他儿子我們主耶穌基督的交通。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{カミ}{神}\frac{ゼシン}{是信}\frac{ミ}{実}\frac{テキ}{的}\frac{,}{,}\frac{你}{你}\frac{ラ}{們}\frac{ノ}{乃}\frac{コレ}{是}\frac{タメ}{爲}\frac{タショ}{他所}\frac{ショウ}{召}\frac{,}{,}\frac{シンニュウ}{進入}\frac{リョウ}{了}\frac{ホカ}{他}\frac{ニン}{儿}\frac{コ}{子}\frac{ワレラ}{我們}\frac{シュ}{主}\frac{ヤソ}{耶穌}\frac{キリスト}{基督}\frac{テキ}{的}\frac{コウツウ。}{交通。}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
抱歉,昨天太忙了。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{ホウ}{抱}\frac{ケン}{歉}\frac{,}{,}\frac{サク}{昨}\frac{テン}{天}\frac{タ}{太}\frac{ボウ}{忙}\frac{リョウ。}{了。}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
我聚會完了。我現在在超市。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{ワレ}{我}\frac{シュウカイ}{聚會}\frac{カンリョウ。}{完了。}\frac{ワレ}{我}\frac{ゲンザイ}{現在}\frac{ザイ}{在}\frac{チョウ}{超}\frac{シ。}{市。}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
用這個輸入法的日語輸入漢字比較方便。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{ヨウ}{用}\frac{シャ}{這}\frac{コ}{個}\frac{ユニュウ}{輸入}\frac{ホウテキ}{法的}\frac{ニチゴ}{日語}\frac{ユニュウ}{輸入}\frac{カンジ}{漢字}\frac{ヒカク}{比較}\frac{ホウベン。}{方便。}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
主啊,我與ひじりい願意全心全意追隨你。
願意讓你在我們裡面書寫神聖的歷史。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{シュ}{主}\frac{啊}{啊}\frac{,}{,}\frac{ワレ}{我}\frac{ヨ}{與}\frac{ジョウ}{盛}\frac{イ}{偉}\frac{ガンイ}{願意}\frac{ゼンシン}{全心}\frac{ゼン}{全}\frac{イ}{意}\frac{ツイ}{追}\frac{ズイ}{隨}\frac{。}{你。}$
$\displaystyle \frac{ガンイ}{願意}\frac{ユズル}{讓}\frac{你}{你}\frac{ザイ}{在}\frac{ワレラ}{我們}\frac{リメン}{裡面}\frac{ショシャ}{書寫}\frac{シンセイ}{神聖}\frac{テキ}{的}\frac{レキシ。}{歷史。}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
我們早點學會這種偽日本語。我們可以用偽日本語交談。沒有人能夠聽懂。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{ワレラ}{我們}\frac{ソウ}{早}\frac{テン}{點}\frac{ガッカイ}{學會}\frac{シャ}{這}\frac{タネ}{種}\frac{ニセ}{偽}\frac{ニホンゴ。}{日本語。}\frac{ワレラ}{我們}\frac{カ}{可}\frac{イ}{以}\frac{ヨウ}{用}\frac{ニセ}{偽}\frac{ニホンゴ}{日本語}\frac{コウ}{交}\frac{ダン。}{談。}\frac{ボツ}{沒}\frac{ユウジン}{有人}\frac{ノウ}{能}\frac{夠}{夠}\frac{チョウ}{聽}\frac{。}{懂。}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
### 三  憑著眾召會在基督身體里的交通,平安的神就要將撒但踐踏在我們的腳下——羅十六20。

## **陸  羅馬十六章給了我們使徒保羅絕佳的榜樣,他將眾聖徒帶到基督身體全體相調的生活中;乃是在這樣的生活中,我們才能真正地在生命中作王——五17:**

### 一  保羅對聖徒一一提名問安,至少有二十七個名字;這給我們看見,他對每一位聖徒都相當的認識、瞭解、關心——十六1~16。

### 二  保羅的推薦與問安表達眾聖徒之間相互的關切,以及眾召會之間相互的交通——參西四15~16。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{### }{### }\frac{サン}{三}\frac{ }{ }\frac{サン}{三}\frac{ }{ }\frac{ヒョウ}{憑}\frac{チョ}{著}\frac{眾}{眾}\frac{ショウ}{召}\frac{カイ}{會}\frac{ザイ}{在}\frac{キリスト}{基督}\frac{シンタイ}{身體}\frac{サト}{里}\frac{テキ}{的}\frac{コウツウ}{交通}\frac{,}{,}\frac{ヘイアン}{平安}\frac{テキ}{的}\frac{カミ}{神}\frac{シュウ}{就}\frac{ヨウ}{要}\frac{ショウ}{將}\frac{サン}{撒}\frac{タダ}{但}\frac{セン}{踐}\frac{トウ}{踏}\frac{ザイ}{在}\frac{ワレラ}{我們}\frac{テキ}{的}\frac{腳}{腳}\frac{シタ}{下}\frac{——}{——}\frac{ラ}{羅}\frac{ジュウロク}{十六}\frac{20}{20}\frac{。}{。}$
$\displaystyle $
$\displaystyle \frac{## **}{## **}\frac{リク}{陸}\frac{ }{ }\frac{リク}{陸}\frac{ }{ }\frac{ローマ}{羅馬}\frac{ジュウロク}{十六}\frac{ショウ}{章}\frac{キュウ}{給}\frac{リョウ}{了}\frac{ワレラ}{我們}\frac{シト}{使徒}\frac{ポール}{保羅}\frac{絕}{絕}\frac{カ}{佳}\frac{テキ}{的}\frac{ボウ}{榜}\frac{サマ}{樣}\frac{,}{,}\frac{ホカ}{他}\frac{ショウ}{將}\frac{眾}{眾}\frac{セイト}{聖徒}\frac{オビ}{帶}\frac{トウ}{到}\frac{キリスト}{基督}\frac{シンタイゼンタイ}{身體全體}\frac{ソウ}{相}\frac{チョウ}{調}\frac{テキ}{的}\frac{セイカツ}{生活}\frac{ナカ}{中}\frac{;}{;}\frac{ナカ}{中}\frac{ノ}{乃}\frac{コレ}{是}\frac{ザイ}{在}\frac{シャ}{這}\frac{サマ}{樣}\frac{テキ}{的}\frac{セイカツ}{生活}\frac{ナカ}{中}\frac{,}{,}\frac{ワレラ}{我們}\frac{サイノウ}{才能}\frac{シンセイ}{真正}\frac{チ}{地}\frac{ザイショウ}{在生}\frac{メイチュウ}{命中}\frac{サク}{作}\frac{オウ}{王}\frac{——}{——}\frac{ゴ}{五}\frac{17:**}{17:**}$
$\displaystyle $
$\displaystyle \frac{### }{### }\frac{イチ}{一}\frac{ }{ }\frac{イチ}{一}\frac{ }{ }\frac{ポール}{保羅}\frac{ツイ}{對}\frac{セイト}{聖徒}\frac{イチイチ}{一一}\frac{テイ}{提}\frac{メイ}{名}\frac{トン}{問}\frac{アン}{安}\frac{,}{,}\frac{イタ}{至}\frac{ショウ}{少}\frac{ユウジ}{有二}\frac{ジュウ}{十}\frac{ナナコ}{七個}\frac{ミョウジ}{名字}\frac{;}{;}\frac{ミョウジ}{名字}\frac{シャ}{這}\frac{キュウ}{給}\frac{ワレラ}{我們}\frac{カン}{看}\frac{ケン}{見}\frac{,}{,}\frac{ホカ}{他}\frac{ツイ}{對}\frac{每}{每}\frac{イチイ}{一位}\frac{セイト}{聖徒}\frac{ミヤコ}{都}\frac{ソウトウ}{相當}\frac{テキ}{的}\frac{ニンシキ、}{認識、}\frac{リョウ}{瞭}\frac{カイ、}{解、}\frac{カンシン}{關心}\frac{——}{——}\frac{ジュウロク}{十六}\frac{1~16。}{1~16。}$
$\displaystyle $
$\displaystyle \frac{### }{### }\frac{ニ}{二}\frac{ }{ }\frac{ニ}{二}\frac{ }{ }\frac{ポール}{保羅}\frac{テキ}{的}\frac{スイセン}{推薦}\frac{ヨ}{與}\frac{トン}{問}\frac{アン}{安}\frac{オモテ}{表}\frac{トオル}{達}\frac{眾}{眾}\frac{セイト}{聖徒}\frac{ユキ}{之}\frac{カン}{間}\frac{ソウゴ}{相互}\frac{テキ}{的}\frac{カン}{關}\frac{セツ}{切}\frac{,}{,}\frac{イ}{以}\frac{キュウ}{及}\frac{眾}{眾}\frac{ショウ}{召}\frac{カイ}{會}\frac{ユキ}{之}\frac{カン}{間}\frac{ソウゴ}{相互}\frac{テキ}{的}\frac{コウツウ}{交通}\frac{——}{——}\frac{サン}{參}\frac{ニシ}{西}\frac{シ}{四}\frac{15~16。}{15~16。}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
今日有時間的話,到銀行去問問:能否把、平井支店、転成、横山町支店?
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{キョウ}{今日}\frac{ユウジ}{有時}\frac{カン}{間}\frac{テキ}{的}\frac{ハナシ}{話}\frac{,}{,}\frac{トウ}{到}\frac{ギンコウ}{銀行}\frac{キョ}{去}\frac{トン}{問}\frac{トン}{問}\frac{:}{:}\frac{ノウヒ}{能否}\frac{ハ、}{把、}\frac{ヒライ}{平井}\frac{シテン、}{支店、}\frac{テンセイ、}{転成、}\frac{ヨコヤマチョウ}{横山町}\frac{シテン?}{支店?}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
美好的生活
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{ミヨシ}{美好}\frac{テキ}{的}\frac{セイカツ}{生活}$
$\displaystyle $
In [ ]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
嚴曉亮
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{ゲン}{嚴}\frac{アカツキ}{曉}\frac{アキラ}{亮}$
$\displaystyle $
In [13]:
from IPython.display import Math
line = ''
for word in render_to_latex('''
如何顯示前后差異?
EKS 是基於 Kubernetes 嗎?
我是盛偉。昨天和您見過一面。能不能問一個非常基本的問題?UAT 環境和 ITST 環境是什麼?它們有開發環境嗎?
它們好像是測試環境。使用或者更改它們需要申請嗎?
如何用 AWS CLI 調查某個與 Lambda 相關的指標和閾值是如何設置的?是用 CloudWatch 還是 Datadog ?
哦哦。非常感謝。我看到兩者有比較多相同的 Lambda 。
順便一提,我是用日文輸入法輸入中文。要安裝中文輸入法得申請吧?
對啊。下載的時候出現錯誤。
'''):
    if word == '\n':
        display(Math(line))
        line = ''
    else:
        line += word
$\displaystyle $
$\displaystyle \frac{イカ}{如何}\frac{ケンジ}{顯示}\frac{マエ}{前}\frac{キサキ}{后}\frac{サイ?}{差異?}$
$\displaystyle \frac{EKS }{EKS }\frac{コレ}{是}\frac{モト}{基}\frac{オ}{於}\frac{ Kubernetes }{ Kubernetes }\frac{?}{嗎?}$
$\displaystyle \frac{ワレ}{我}\frac{コレ}{是}\frac{ジョウ}{盛}\frac{イ。}{偉。}\frac{サク}{昨}\frac{テンホウ}{天和}\frac{您}{您}\frac{ケン}{見}\frac{カ}{過}\frac{イチメン。}{一面。}\frac{ノウ}{能}\frac{フノウ}{不能}\frac{トン}{問}\frac{イッコ}{一個}\frac{ヒジョウ}{非常}\frac{キホンテキモンダイ?}{基本的問題?}\frac{UAT }{UAT }\frac{カンキョウ}{環境}\frac{ワ}{和}\frac{ ITST }{ ITST }\frac{カンキョウ}{環境}\frac{コレ}{是}\frac{インモ?}{什麼?}\frac{タ}{它}\frac{ラ}{們}\frac{アリ}{有}\frac{カイハツカンキョウ}{開發環境}\frac{?}{嗎?}$
$\displaystyle \frac{タ}{它}\frac{ラ}{們}\frac{コウ}{好}\frac{ゾウ}{像}\frac{コレ}{是}\frac{ソク}{測}\frac{シ}{試}\frac{カンキョウ。}{環境。}\frac{シヨウ}{使用}\frac{アル}{或}\frac{モノ}{者}\frac{コウカイ}{更改}\frac{タ}{它}\frac{ラ}{們}\frac{ジュヨウ}{需要}\frac{シンセイ}{申請}\frac{?}{嗎?}$
$\displaystyle \frac{イカ}{如何}\frac{ヨウ}{用}\frac{ AWS CLI }{ AWS CLI }\frac{チョウ}{調}\frac{查}{查}\frac{ボウ}{某}\frac{コ}{個}\frac{ヨ}{與}\frac{ Lambda }{ Lambda }\frac{ソウカン}{相關}\frac{テキ}{的}\frac{シヒョウ}{指標}\frac{ワ}{和}\frac{イキ}{閾}\frac{值}{值}\frac{コレ}{是}\frac{イカ}{如何}\frac{セッチ}{設置}\frac{テキ?}{的?}\frac{コレ}{是}\frac{ヨウ}{用}\frac{ CloudWatch }{ CloudWatch }\frac{カン}{還}\frac{コレ}{是}\frac{ Datadog ?}{ Datadog ?}$
$\displaystyle \frac{ガ}{哦}\frac{ガ。}{哦。}\frac{ヒジョウ}{非常}\frac{カンシャ。}{感謝。}\frac{ワレ}{我}\frac{カン}{看}\frac{トウ}{到}\frac{リョウシャ}{兩者}\frac{アリ}{有}\frac{ヒカク}{比較}\frac{タソウ}{多相}\frac{ドウ}{同}\frac{テキ}{的}\frac{ Lambda 。}{ Lambda 。}$
$\displaystyle \frac{ジュン}{順}\frac{ビン}{便}\frac{イチ}{一}\frac{テイ}{提}\frac{,}{,}\frac{ワレ}{我}\frac{コレ}{是}\frac{ヨウ}{用}\frac{ニチブン}{日文}\frac{ユニュウ}{輸入}\frac{ホウ}{法}\frac{ユニュウ}{輸入}\frac{チュウブン。}{中文。}\frac{ヨウ}{要}\frac{アン}{安}\frac{ソウ}{裝}\frac{チュウブン}{中文}\frac{ユニュウ}{輸入}\frac{ホウ}{法}\frac{エ}{得}\frac{シンセイ}{申請}\frac{?}{吧?}$
$\displaystyle \frac{ツイ}{對}\frac{。}{啊。}\frac{シタ}{下}\frac{サイ}{載}\frac{テキ}{的}\frac{ジコウ}{時候}\frac{シュツゲン}{出現}\frac{サクゴ。}{錯誤。}$
$\displaystyle $
In [ ]:
%%bash
pip install unihan-etl
In [ ]:
%%bash
pip install cihai

あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん

In [ ]:
from cihai.core import Cihai

c = Cihai()

if not c.unihan.is_bootstrapped:  # download and install Unihan to db
    c.unihan.bootstrap()

query = c.unihan.lookup_char('好')
glyph = query.first()
print("lookup for 好: %s" % glyph.kDefinition)
# lookup for 好: good, excellent, fine; well

query = c.unihan.reverse_char('good')
print('matches for "good": %s ' % ', '.join([glph.char for glph in query]))
# matches for "good": 㑘, 㑤, 㓛, 㘬, 㙉, 㚃, 㚒, 㚥, 㛦, 㜴, 㜺, 㝖, 㤛, 㦝, ...
Exists, but is not a file: /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan.zip
Downloading Unihan.zip...
http://www.unicode.org/Public/UNIDATA/Unihan.zip to /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan.zip
Total size: 8.0Mb
100% [==================================================>]
extract_zip dest dir: /home/jupyter-saintway/.cache/unihan_etl/downloads

Loading data: /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan_DictionaryLikeData.txt, /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan_IRGSources.txt, /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan_NumericValues.txt, /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan_RadicalStrokeCounts.txt, /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan_Readings.txt, /home/jupyter-saintway/.cache/unihan_etl/downloads/Unihan_Variants.txt
Done loading data.
Collecting field data...
lookup for 好: good, excellent, fine; well
matches for "good": 㑘, 㑤, 㓛, 㘬, 㙉, 㚃, 㚒, 㚥, 㛦, 㜴, 㜺, 㝖, 㤛, 㦝, 㫑, 㭋, 㰬, 㱅, 㱡, 㳤, 㹏, 㹛, 㽥, 㾎, 㿲, 䃽, 䄈, 䄉, 䄐, 䄙, 䋬, 䌖, 䌝, 䌤, 䌧, 䌳, 䏂, 䐌, 䐚, 䑞, 䒁, 䒏, 䒐, 䙤, 䚱, 䚷, 䚸, 䜴, 䝕, 䝨, 䢇, 䣨, 䣩, 䤒, 䩂, 䩇, 䩊, 䫑, 䫢, 䮐, 䯭, 䱼, 䴆, 佳, 佼, 功, 吉, 咊, 善, 塡, 填, 好, 姤, 姽, 娥, 宓, 昌, 淑, 祉, 祥, 祦, 祯, 祺, 禎, 福, 禔, 禨, 羑, 羭, 腆, 臧, 良, 貨, 賍, 賢, 贒, 贓, 贜, 贤, 货, 赃, 醇, 頔, 顓, 颛, 餱, 𠿭, 𡠜, 𦈟, 𬱖, 良, 祥, 𦈜, 𫗯, 𫲗, 𬥄, 𰷭 
In [ ]:
from cihai.core import Cihai

c = Cihai()

if not c.unihan.is_bootstrapped:  # download and install Unihan to db
    c.unihan.bootstrap()

query = c.unihan.lookup_char('讀')
glyph = query.first()
In [ ]:
glyph.kJapaneseKun
Out[ ]:
'YOMU'
In [ ]:
glyph.kJapaneseOn
Out[ ]:
'TOKU TOU DOKU'
In [ ]:
glyph.kRSJapanese
In [ ]:
glyph.kZVariant
In [ ]:
glyph.kSemanticVariant
In [ ]:
glyph.kSimplifiedVariant
Out[ ]:
'U+8BFB'
In [ ]:
glyph.kTraditionalVariant
Out[ ]:
'U+8B80'
In [ ]:
glyph.kCompatibilityVariant
In [ ]:
glyph.kSpecializedSemanticVariant
In [ ]:
dir(glyph)
Out[ ]:
['__abstract__',
 '__annotations__',
 '__class__',
 '__delattr__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__le__',
 '__lt__',
 '__mapper__',
 '__module__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__table__',
 '__weakref__',
 '_sa_automapbase_bookkeeping',
 '_sa_class_manager',
 '_sa_decl_prepare',
 '_sa_instance_state',
 '_sa_raise_deferred_config',
 '_sa_registry',
 'by_module',
 'char',
 'classes',
 'kAccountingNumeric',
 'kCangjie',
 'kCantonese',
 'kCheungBauer',
 'kCihaiT',
 'kCompatibilityVariant',
 'kDefinition',
 'kFenn',
 'kFourCornerCode',
 'kFrequency',
 'kGradeLevel',
 'kHDZRadBreak',
 'kHKGlyph',
 'kHangul',
 'kHanyuPinlu',
 'kHanyuPinyin',
 'kJapaneseKun',
 'kJapaneseOn',
 'kKorean',
 'kMandarin',
 'kOtherNumeric',
 'kPhonetic',
 'kPrimaryNumeric',
 'kRSAdobe_Japan1_6',
 'kRSJapanese',
 'kRSKanWa',
 'kRSKangXi',
 'kRSKorean',
 'kRSUnicode',
 'kSemanticVariant',
 'kSimplifiedVariant',
 'kSpecializedSemanticVariant',
 'kTang',
 'kTotalStrokes',
 'kTraditionalVariant',
 'kVietnamese',
 'kXHC1983',
 'kZVariant',
 'metadata',
 'prepare',
 'registry',
 'ucn']
Read More

2023-08-07
漂泊


Life Hymn 570 - Wandering (O the joy of having nothing)
by Brother Darby, Zheng & Andrew

Original Lyrics: Brother Darby (John Nelson Darby, 1800-1882)
Lyrics Adaptation: Brother Zhicheng
Melody Adaptation: Sister Yuting
Sung by: Young Sisters of the Cleveland Church
Lyrics Readaptation: Brother Andrew


[V1]
The glorious God revealed, drawing me forward;
All earthly things are no longer closely connected to me.
The glorious God revealed, with a face as solid as a rock;
In wandering, there is hope, walking step by step in the heavenly realm.


[C]
Oh, what joy, oh, what joy,
that we can have nothing,
see nothing, manifest nothing,
but a living Christ in glory;
Oh, what joy, oh, what joy,
that we can have nothing,
see nothing, worry about nothing,
but regard His interests here on the earth.

生命诗歌 570 - 漂泊 (O the joy of having nothing)

词原作:达秘弟兄(约翰・纳尔逊・达秘)
词改编:郑志成弟兄
曲改编:郑范郁婷姊妹
唱:克里夫兰教会青年姊妹
词再改编:盛伟弟兄


[V1]
荣耀之神显现,吸引我向前;
地上一切事物,不再紧相联。
荣耀之神显现,面如石坚;
漂泊中有盼望,步步行走属天。


[C]
哦!何等喜乐,何等喜乐,
我们能够一无所有,
一无所见,一无所显,
惟显荣耀的基督;
何等喜乐,何等喜乐,
我们能够一无所有,
一无所见,一无所顾,
惟顾祂在地这里的权益。

Read More

2023-04-19
Text2Vec

In [ ]:
from sentence_transformers import SentenceTransformer

all-mpnet-base-v2

In [ ]:
SentenceTransformer('sentence-transformers/all-mpnet-base-v2')
Out[ ]:
SentenceTransformer(
  (0): Transformer({'max_seq_length': 384, 'do_lower_case': False}) with Transformer model: MPNetModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
  (2): Normalize()
)
In [ ]:
%%bash
ls -lah ~/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
	- Avoid using `tokenizers` before the fork if possible
	- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
total 857056
drwxr-xr-x  16 saintway  staff   512B Apr 12 14:31 .
drwxr-xr-x   5 saintway  staff   160B Apr 19 17:23 ..
-rw-r--r--   1 saintway  staff   1.1K Apr 12 14:28 .gitattributes
drwxr-xr-x   3 saintway  staff    96B Apr 12 14:28 1_Pooling
-rw-r--r--   1 saintway  staff    10K Apr 12 14:28 README.md
-rw-r--r--   1 saintway  staff   571B Apr 12 14:28 config.json
-rw-r--r--   1 saintway  staff   116B Apr 12 14:28 config_sentence_transformers.json
-rw-r--r--   1 saintway  staff    38K Apr 12 14:28 data_config.json
-rw-r--r--   1 saintway  staff   349B Apr 12 14:31 modules.json
-rw-r--r--   1 saintway  staff   418M Apr 12 14:31 pytorch_model.bin
-rw-r--r--   1 saintway  staff    53B Apr 12 14:31 sentence_bert_config.json
-rw-r--r--   1 saintway  staff   239B Apr 12 14:31 special_tokens_map.json
-rw-r--r--   1 saintway  staff   455K Apr 12 14:31 tokenizer.json
-rw-r--r--   1 saintway  staff   363B Apr 12 14:31 tokenizer_config.json
-rw-r--r--   1 saintway  staff    13K Apr 12 14:31 train_script.py
-rw-r--r--   1 saintway  staff   226K Apr 12 14:31 vocab.txt
In [ ]:
%%bash
cat ~/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2/modules.json
[
  {
    "idx": 0,
    "name": "0",
    "path": "",
    "type": "sentence_transformers.models.Transformer"
  },
  {
    "idx": 1,
    "name": "1",
    "path": "1_Pooling",
    "type": "sentence_transformers.models.Pooling"
  },
  {
    "idx": 2,
    "name": "2",
    "path": "2_Normalize",
    "type": "sentence_transformers.models.Normalize"
  }
]
In [ ]:
%%bash
cat ~/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2/sentence_bert_config.json
{
  "max_seq_length": 384,
  "do_lower_case": false
}
In [ ]:
%%bash
cat ~/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2/1_Pooling/config.json
{
  "word_embedding_dimension": 768,
  "pooling_mode_cls_token": false,
  "pooling_mode_mean_tokens": true,
  "pooling_mode_max_tokens": false,
  "pooling_mode_mean_sqrt_len_tokens": false
}
In [ ]:
%%bash
du -sh ~/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2/data_config.json
 40K	/Users/saintway/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2/data_config.json

all-MiniLM-L6-v2

In [ ]:
SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
Out[ ]:
SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
  (2): Normalize()
)
In [ ]:
%%bash
ls -lah ~/.cache/torch/sentence_transformers/sentence-transformers_all-MiniLM-L6-v2
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
	- Avoid using `tokenizers` before the fork if possible
	- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
total 210456
drwxr-xr-x  16 saintway  staff   512B Apr 19 17:38 .
drwxr-xr-x   6 saintway  staff   192B Apr 19 17:38 ..
-rw-r--r--   1 saintway  staff   1.1K Apr 19 17:37 .gitattributes
drwxr-xr-x   3 saintway  staff    96B Apr 19 17:38 1_Pooling
-rw-r--r--   1 saintway  staff    10K Apr 19 17:38 README.md
-rw-r--r--   1 saintway  staff   612B Apr 19 17:38 config.json
-rw-r--r--   1 saintway  staff   116B Apr 19 17:38 config_sentence_transformers.json
-rw-r--r--   1 saintway  staff    38K Apr 19 17:38 data_config.json
-rw-r--r--   1 saintway  staff   349B Apr 19 17:38 modules.json
-rw-r--r--   1 saintway  staff    87M Apr 19 17:38 pytorch_model.bin
-rw-r--r--   1 saintway  staff    53B Apr 19 17:38 sentence_bert_config.json
-rw-r--r--   1 saintway  staff   112B Apr 19 17:38 special_tokens_map.json
-rw-r--r--   1 saintway  staff   455K Apr 19 17:38 tokenizer.json
-rw-r--r--   1 saintway  staff   350B Apr 19 17:38 tokenizer_config.json
-rw-r--r--   1 saintway  staff    13K Apr 19 17:38 train_script.py
-rw-r--r--   1 saintway  staff   226K Apr 19 17:38 vocab.txt

CoSENT hfl/chinese-macbert-base

Full Model Architecture:

CoSENT(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_mean_tokens': True})
)
In [ ]:
SentenceTransformer('shibing624/text2vec-base-chinese')
Out[ ]:
SentenceTransformer(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
In [ ]:
%%writefile ~/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese/modules.json
[
  {
    "idx": 0,
    "name": "0",
    "path": "",
    "type": "sentence_transformers.models.Transformer"
  },
  {
    "idx": 1,
    "name": "1",
    "path": "1_Pooling",
    "type": "sentence_transformers.models.Pooling"
  }
]
Overwriting /Users/saintway/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese/modules.json
In [ ]:
%%writefile ~/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese/sentence_bert_config.json
{
  "max_seq_length": 128,
  "do_lower_case": false
}
Writing /Users/saintway/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese/sentence_bert_config.json
In [ ]:
%%bash
mkdir -p ~/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese/1_Pooling
In [ ]:
%%writefile ~/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese/1_Pooling/config.json
{
  "word_embedding_dimension": 768,
  "pooling_mode_mean_tokens": true
}
Writing /Users/saintway/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese/1_Pooling/config.json
In [ ]:
%%bash
ls -lah ~/.cache/torch/sentence_transformers/shibing624_text2vec-base-chinese
total 831776
drwxr-xr-x  13 saintway  staff   416B Apr 19 19:22 .
drwxr-xr-x   7 saintway  staff   224B Apr 19 17:43 ..
-rw-r--r--   1 saintway  staff   1.1K Apr 19 17:42 .gitattributes
drwxr-xr-x   3 saintway  staff    96B Apr 19 19:22 1_Pooling
-rw-r--r--   1 saintway  staff   4.0K Apr 19 17:43 README.md
-rw-r--r--   1 saintway  staff   856B Apr 19 17:43 config.json
-rw-r--r--   1 saintway  staff   546B Apr 19 17:43 logs.txt
-rw-r--r--   1 saintway  staff   230B Apr 19 19:17 modules.json
-rw-r--r--   1 saintway  staff   390M Apr 19 17:43 pytorch_model.bin
-rw-r--r--   1 saintway  staff    54B Apr 19 19:11 sentence_bert_config.json
-rw-r--r--   1 saintway  staff   112B Apr 19 17:43 special_tokens_map.json
-rw-r--r--   1 saintway  staff   319B Apr 19 17:43 tokenizer_config.json
-rw-r--r--   1 saintway  staff   107K Apr 19 17:43 vocab.txt

CoSENT hfl/chinese-lert-large

In [ ]:
SentenceTransformer('GanymedeNil/text2vec-large-chinese')
Out[ ]:
SentenceTransformer(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
In [ ]:
%%writefile ~/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese/modules.json
[
  {
    "idx": 0,
    "name": "0",
    "path": "",
    "type": "sentence_transformers.models.Transformer"
  },
  {
    "idx": 1,
    "name": "1",
    "path": "1_Pooling",
    "type": "sentence_transformers.models.Pooling"
  }
]
Writing /home/jupyter-saintway/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese/modules.json
In [ ]:
%%writefile ~/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese/sentence_bert_config.json
{
  "max_seq_length": 128,
  "do_lower_case": false
}
Writing /home/jupyter-saintway/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese/sentence_bert_config.json
In [ ]:
%%bash
mkdir -p ~/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese/1_Pooling
In [ ]:
%%writefile ~/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese/1_Pooling/config.json
{
  "word_embedding_dimension": 1024,
  "pooling_mode_mean_tokens": true
}
Writing /home/jupyter-saintway/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese/1_Pooling/config.json
In [ ]:
%%bash
ls -lah ~/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese
total 2569336
drwxr-xr-x  14 saintway  staff   448B Apr 19 19:28 .
drwxr-xr-x   7 saintway  staff   224B Apr 19 17:43 ..
-rw-r--r--   1 saintway  staff   1.4K Apr 19 17:16 .gitattributes
drwxr-xr-x   3 saintway  staff    96B Apr 19 19:28 1_Pooling
-rw-r--r--   1 saintway  staff   317B Apr 19 17:16 README.md
-rw-r--r--   1 saintway  staff   821B Apr 19 17:16 config.json
-rw-r--r--   1 saintway  staff    69B Apr 19 17:16 eval_results.txt
-rw-r--r--   1 saintway  staff   230B Apr 19 19:28 modules.json
-rw-r--r--   1 saintway  staff   1.2G Apr 19 17:23 pytorch_model.bin
-rw-r--r--   1 saintway  staff    54B Apr 19 19:28 sentence_bert_config.json
-rw-r--r--   1 saintway  staff   125B Apr 19 17:23 special_tokens_map.json
-rw-r--r--   1 saintway  staff   429K Apr 19 17:23 tokenizer.json
-rw-r--r--   1 saintway  staff   514B Apr 19 17:23 tokenizer_config.json
-rw-r--r--   1 saintway  staff   107K Apr 19 17:23 vocab.txt
In [ ]:
%%bash
du -sh ~/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese
1.2G	/Users/saintway/.cache/torch/sentence_transformers/GanymedeNil_text2vec-large-chinese

Transformer and Indexer

In [ ]:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('GanymedeNil/text2vec-large-chinese')
In [ ]:
import faiss
indexer = faiss.IndexFlatL2(1024)

Preparing Text

In [ ]:
from langchain.document_loaders import DirectoryLoader, BSHTMLLoader
loader = DirectoryLoader('_morning/htm', loader_cls=BSHTMLLoader)
raw_documents = loader.load()
In [ ]:
import re
for raw_document in raw_documents:
    raw_document.page_content = re.sub(r'\n+', '\n', raw_document.page_content.replace('。', '。\n'))

Embedding

In [ ]:
sentences = None
In [ ]:
num_words = 20
In [ ]:
def embed(text):
    global sentences

    # words = extra_text.split(' ')
    # sentences = [words[i: i+num_words] for i in range(0, len(words), num_words)]
    # sentences = [' '.join(word_list) for word_list in sentences]
    import re
    sentences = []
    for i, sentence in enumerate(re.split(r'\n+', text.replace('。', '。\n'))):
        sentence = sentence.strip()
        if sentence != '':
            sentences.append(sentence)

    print('\nNumber of Sentences:', len(sentences))
    # print(sentences)

    print('\nEmbedding the sentences...')
    return model.encode(sentences)
In [ ]:
embeddings = embed(''.join([raw_document.page_content for raw_document in raw_documents]))
In [ ]:
len(embeddings[0])
Out[ ]:
1024

Loading Faiss Indexer from Disk

In [ ]:
import os, pickle
In [ ]:
if os.path.exists(os.path.expanduser('~/lert_indexing_morning.pkl')):
    # load vectorstore
    with open(os.path.expanduser('~/lert_indexing_morning.pkl'), 'rb') as f:
        indexer = pickle.load(f)

Indexing

In [ ]:
print('\nBuilding the index...')
indexer.add(embeddings)
print('\nindex.ntotal:', indexer.ntotal)

Saving Faiss Indexer to Disk

In [ ]:
if not os.path.exists(os.path.expanduser('~/lert_indexing_morning.pkl')):
    # save vectorstore
    with open(os.path.expanduser('~/lert_indexing_morning.pkl'), 'wb') as f:
        pickle.dump(indexer, f)
In [ ]:
%%bash
ls -lah ~/lert_indexing_morning.pkl
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
	- Avoid using `tokenizers` before the fork if possible
	- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
-rw-r--r--  1 saintway  staff    55M Apr 19 21:42 /Users/saintway/lert_indexing_morning.pkl

Searching

In [ ]:
k = 20
In [ ]:
def retrieve(text):
    print('\nSearching for:', text)
    xq = model.encode([text])
    D, I = indexer.search(xq, k)
    print('Distance:', D[0])
    print('Index:', I[0])

    print('\nRetrieving related information...')
    result = ''
    for i in I[0]:
        try:
            result += sentences[i] + '\n'
        except:
            print(len(sentences), i)
    print('\nresult:', result)
    return result
In [ ]:
retrieve('你知道什么?')
retrieve('第八周讲了什么?')
retrieve('七倍加强的灵是什么?')
Retrieving extra information...
[656.14075 686.03516 686.03516 701.83813 708.9243  709.8529  711.5835
 729.1748  740.6108  756.9905  759.0303  759.19086 760.30756 762.8627
 763.7213  764.0825  770.2078  770.9846  771.6991  776.6118 ]
[ 5330  6025  8696  4925  1817   292  3119  6404  2026  5745  2730  9065
   509 12541 12823  1832 12689   263 10313  2867]

result: 你会明白主的心思,你也会知道什么是主的意愿。
你知道每一个十字路口都是一个十字架么?有的是大十字架,有的是小十字架,但它们都是十字架。
你知道每一个十字路口都是一个十字架么?有的是大十字架,有的是小十字架,但它们都是十字架。
你晓得误会是从哪里来的么?它的根源常常是不纯净。
我和你们交通这事,是要让你们晓得我们的书撰写的方式。
当我们愿意对祂说,“主啊,我不知道自己的光景如何,也不知道自己需要什么;但是你知道。
……“我从前风闻有你,现在亲眼看见你。
反之,我们该问这里的真理是什么,也该问顺从真理是什么意思。
九节说,“少年人用什么使他的行径纯洁呢?是要遵行你的话。
那时你为你的大名要怎样行呢?
有些人不能明白主的恢复是怎么一回事。
帖后2:5 我还在你们那里的时候,曾一再把这些事告诉你们,你们不记得么?
我要向全宇宙宣告,无论事情怎样,我相信你是我的神。
”当时我并不知道那是什么,直到我进到召会中,与你们一同站在一的立场上。
就一面的意义说,我们不知道什么,也不作什么。
到那时候你就晓得如何向别人陈明真理,不是仅仅激发或激动人,而是使人扎实,得着真理的构成(李常受文集一九八四年第二册,四○二至四○三页)。
论到借着赞美主而从事属灵的争战,我要温柔地请问你们这些一同学习的弟兄姊妹:“在这个月里,你个人向着主有几次赞美呢?今年你赞美主几次呢?年长的圣徒们,在主的恢复这许多年来,你有没有赞美主呢?”有些人可能说,“有。
可能你经历一段感情的结束,当时不明白为什么会发生这样的事,日后回想,才懂得感谢神。
在宇宙中有这么多的东西,有这么多的故事;但是六千年来,还没有一个人看见过神。
然而,我们是否真正明白在主的恢复里是什么意思,主所恢复的又是什么?以下的信息会指出三个主要的点,说明主的恢复到底是什么。


Retrieving extra information...
[336.1584  336.1584  336.1584  336.1584  336.1584  336.1584  437.74524
 457.0722  491.19138 524.97955 547.4698  561.1646  561.1646  635.23145
 641.3999  641.3999  641.3999  641.3999  641.3999  641.3999 ]
[10211 10762 11196 12282 12928 13579 13596 11211 12946 12292 10226  5370
  9340  2110  3021  4193  4830  5107  5176  6307]

result: 第八周
第八周
第八周
第八周
第八周
第八周
第八周 周六
第八周 周一
第八周 周五
第八周 周四
第八周 周二
第八篇
第八篇
”(八页)
第七周
第七周
第七周
第七周
第七周
第七周


Retrieving extra information...
[149.68991 257.37964 293.2322  390.10983 412.68298 416.7586  426.44324
 448.9715  448.9715  448.9715  474.88263 485.05545 510.15057 515.02356
 539.4849  539.485   539.485   539.485   543.3683  544.59344]
[ 9906  9659  9919  3820  9914  3819  9908  6576  9134 13120  3777  9967
    28    99    13    79  4119  5287  9977  9915]

result: ”七灵乃是七倍加强的灵,不是七个灵,而是一位灵加强了七倍。
今天这赐生命的灵是七倍加强的,我们能以七倍加强的方式来经历这复活的生命。
这灵加强了七倍,不是为着我们的属灵或能力,而是完全为着建造。
我们需要在以下各方面享受基督作七倍加强的灵。
七倍加强的灵乃是为着三一神完满的彰显和神殿的重建。
我们需要在以下各方面享受基督作七倍加强的灵
”耶和华的七眼也是七倍加强的灵。
三 我们需要在以下各方面享受基督作七倍加强的灵:
三 我们需要在以下各方面享受基督作七倍加强的灵:
三 我们需要在以下各方面享受基督作七倍加强的灵:
那灵就是三一神经过种种过程,包括成为肉体、人性生活、钉死、复活、升天,成为赐生命、七倍加强的灵。
至终祂这赐生命的灵─七倍加强的灵─会把祂的生命分赐到我们全人里面,叫我们全人从里到外都变作生命。
随着金这样成形在你里面,就会有七灵照耀并彰显神。
召会作灯台有七灯,就是神的七灵。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
七倍加强的灵乃是七盏火灯,焚烧、光照、暴露、搜寻、审判、洁净并炼净我们,好产生金灯台,完成神新约的经纶
我们若向主认真,愿意起来建造神的殿,我们就需要看见,今天在主恢复的众召会中间,最大的需要就是经历七倍加强的灵。

Out[ ]:
'”七灵乃是七倍加强的灵,不是七个灵,而是一位灵加强了七倍。\n今天这赐生命的灵是七倍加强的,我们能以七倍加强的方式来经历这复活的生命。\n这灵加强了七倍,不是为着我们的属灵或能力,而是完全为着建造。\n我们需要在以下各方面享受基督作七倍加强的灵。\n七倍加强的灵乃是为着三一神完满的彰显和神殿的重建。\n我们需要在以下各方面享受基督作七倍加强的灵\n”耶和华的七眼也是七倍加强的灵。\n三\u3000我们需要在以下各方面享受基督作七倍加强的灵:\n三\u3000我们需要在以下各方面享受基督作七倍加强的灵:\n三\u3000我们需要在以下各方面享受基督作七倍加强的灵:\n那灵就是三一神经过种种过程,包括成为肉体、人性生活、钉死、复活、升天,成为赐生命、七倍加强的灵。\n至终祂这赐生命的灵─七倍加强的灵─会把祂的生命分赐到我们全人里面,叫我们全人从里到外都变作生命。\n随着金这样成形在你里面,就会有七灵照耀并彰显神。\n召会作灯台有七灯,就是神的七灵。\n3\u3000经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。\n3\u3000经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。\n3\u3000经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。\n3\u3000经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。\n七倍加强的灵乃是七盏火灯,焚烧、光照、暴露、搜寻、审判、洁净并炼净我们,好产生金灯台,完成神新约的经纶\n我们若向主认真,愿意起来建造神的殿,我们就需要看见,今天在主恢复的众召会中间,最大的需要就是经历七倍加强的灵。\n'
In [ ]:
retrieve('七倍加强的灵是什么?')
retrieve('问题:七倍加强的灵是什么?')
retrieve('用户提供了一段文本片段,但没有明确说明文档的主题。\n问题:七倍加强的灵是什么?')
Retrieving extra information...
[149.68991 257.37964 293.2322  390.10983 412.68298 416.7586  426.44324
 448.9715  448.9715  448.9715  474.88263 485.05545 510.15057 515.02356
 539.4849  539.485   539.485   539.485   543.3683  544.59344]
[ 9906  9659  9919  3820  9914  3819  9908  6576  9134 13120  3777  9967
    28    99    13    79  4119  5287  9977  9915]

result: ”七灵乃是七倍加强的灵,不是七个灵,而是一位灵加强了七倍。
今天这赐生命的灵是七倍加强的,我们能以七倍加强的方式来经历这复活的生命。
这灵加强了七倍,不是为着我们的属灵或能力,而是完全为着建造。
我们需要在以下各方面享受基督作七倍加强的灵。
七倍加强的灵乃是为着三一神完满的彰显和神殿的重建。
我们需要在以下各方面享受基督作七倍加强的灵
”耶和华的七眼也是七倍加强的灵。
三 我们需要在以下各方面享受基督作七倍加强的灵:
三 我们需要在以下各方面享受基督作七倍加强的灵:
三 我们需要在以下各方面享受基督作七倍加强的灵:
那灵就是三一神经过种种过程,包括成为肉体、人性生活、钉死、复活、升天,成为赐生命、七倍加强的灵。
至终祂这赐生命的灵─七倍加强的灵─会把祂的生命分赐到我们全人里面,叫我们全人从里到外都变作生命。
随着金这样成形在你里面,就会有七灵照耀并彰显神。
召会作灯台有七灯,就是神的七灵。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
七倍加强的灵乃是七盏火灯,焚烧、光照、暴露、搜寻、审判、洁净并炼净我们,好产生金灯台,完成神新约的经纶
我们若向主认真,愿意起来建造神的殿,我们就需要看见,今天在主恢复的众召会中间,最大的需要就是经历七倍加强的灵。


Retrieving extra information...
[207.48007 293.95245 316.6468  394.41498 415.14142 427.4111  440.00018
 440.00018 440.00018 456.50128 494.71838 507.38333 543.869   543.869
 543.869   546.0684  546.0684  546.0684  546.0684  550.43463]
[ 9906  9659  9919  3820  3819  9914  6576  9134 13120  9908  3777  9967
  1349  4167  5299    13    79  4119  5287  6918]

result: ”七灵乃是七倍加强的灵,不是七个灵,而是一位灵加强了七倍。
今天这赐生命的灵是七倍加强的,我们能以七倍加强的方式来经历这复活的生命。
这灵加强了七倍,不是为着我们的属灵或能力,而是完全为着建造。
我们需要在以下各方面享受基督作七倍加强的灵。
我们需要在以下各方面享受基督作七倍加强的灵
七倍加强的灵乃是为着三一神完满的彰显和神殿的重建。
三 我们需要在以下各方面享受基督作七倍加强的灵:
三 我们需要在以下各方面享受基督作七倍加强的灵:
三 我们需要在以下各方面享受基督作七倍加强的灵:
”耶和华的七眼也是七倍加强的灵。
那灵就是三一神经过种种过程,包括成为肉体、人性生活、钉死、复活、升天,成为赐生命、七倍加强的灵。
至终祂这赐生命的灵─七倍加强的灵─会把祂的生命分赐到我们全人里面,叫我们全人从里到外都变作生命。
a 召会作为灯台,乃是三一神扎实的具体化身,有七倍加强的灵作为神神圣性情的油。
a 召会作为灯台,乃是三一神扎实的具体化身,有七倍加强的灵作为神神圣性情的油。
a 召会作为灯台,乃是三一神扎实的具体化身,有七倍加强的灵作为神神圣性情的油。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
3 经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。
对付灵重在对付我们里面不纯的动机、存心和其他杂质(帖前五23,提后一7)。


Retrieving extra information...
[455.2392  474.6516  554.92584 554.92584 554.92584 555.4395  558.1987
 561.82495 562.31335 562.31335 562.31335 573.8733  575.1859  578.14307
 582.34247 584.78894 590.16046 591.0485  592.72095 594.661  ]
[ 9906  9919 11058 13036 13470  1623  1622   813  3182  3861  5811  6918
  1880   488  9659  3820 13501  9728  3819  4528]

result: ”七灵乃是七倍加强的灵,不是七个灵,而是一位灵加强了七倍。
这灵加强了七倍,不是为着我们的属灵或能力,而是完全为着建造。
一 很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。
一 很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。
一 很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。
很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。
很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战
”然而,主给我们的不是胆怯的灵,乃是能力的灵(参提后一7)。
三 对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。
三 对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。
三 对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。
对付灵重在对付我们里面不纯的动机、存心和其他杂质(帖前五23,提后一7)。
然而在六节,当以斯拉在他的叙述中说到自己时,只说“他是经学家”,而不提他是亚伦家的祭司;他没有高举自己祭司的身分。
但那只是起始阶段的信心,并不是路加十八章里主要寻找的信心。
今天这赐生命的灵是七倍加强的,我们能以七倍加强的方式来经历这复活的生命。
我们需要在以下各方面享受基督作七倍加强的灵。
在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎不懂得什么叫作属灵的争战。
然而,我讲这篇信息时,里面并没有责备的灵。
我们需要在以下各方面享受基督作七倍加强的灵
提前6:7 因为我们没有带什么到世界来,也不能带什么去;

Out[ ]:
'”七灵乃是七倍加强的灵,不是七个灵,而是一位灵加强了七倍。\n这灵加强了七倍,不是为着我们的属灵或能力,而是完全为着建造。\n一\u3000很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。\n一\u3000很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。\n一\u3000很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。\n很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战。\n很可惜的是,在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎都不懂得什么叫作属灵的争战\n”然而,主给我们的不是胆怯的灵,乃是能力的灵(参提后一7)。\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n对付灵重在对付我们里面不纯的动机、存心和其他杂质(帖前五23,提后一7)。\n然而在六节,当以斯拉在他的叙述中说到自己时,只说“他是经学家”,而不提他是亚伦家的祭司;他没有高举自己祭司的身分。\n但那只是起始阶段的信心,并不是路加十八章里主要寻找的信心。\n今天这赐生命的灵是七倍加强的,我们能以七倍加强的方式来经历这复活的生命。\n我们需要在以下各方面享受基督作七倍加强的灵。\n在今日的召会中,因着生命的软弱,属灵力量的缺乏,和真理亮光的不够明亮,信徒几乎不懂得什么叫作属灵的争战。\n然而,我讲这篇信息时,里面并没有责备的灵。\n我们需要在以下各方面享受基督作七倍加强的灵\n提前6:7\u3000因为我们没有带什么到世界来,也不能带什么去;\n'

Chat with PDF

In [ ]:
messages_in_english = [{
    'role': 'system', 'content': 'You are an AI agent that summarizes chat in less than three setences.'
}]
In [ ]:
messages_in_chinese = [{
    'role': '系统', 'content': '你是一个 AI 代理。请用中文在三句话之内概括聊天内容。'
}]
In [ ]:
chats_in_english = [{
    'role': 'system', 'content': 'You are an AI assistant providing helpful advice.\n' + \
    'You are given the following extracted parts of a long document and a question.\n' + \
    'Provide a conversational answer based on the context provided.\n' + \
    'You should only provide hyperlinks that reference the context below.\n' + \
    'Do NOT make up hyperlinks.\n' + \
    'If you can\'t find the answer in the context below, use your prior knowledge,\n' + \
    'but in most of the cases the answer will be in the context.\n' + \
    # 'If the question is not related to the context, politely respond that you are tuned to only answer questions that are related to the context.\n' + \
    'Answer in Markdown format.\n'
}]
In [ ]:
chats_in_chinese = [{
    'role': '系统', 'content': '你是一个提供有用建议的 AI 助手。\n' + \
    '你被提供了一份长文档的一部分(额外信息)和一个问题。\n' + \
    '请根据我所提供的文本提供会话式的回答。\n' + \
    '你只应该提供与下面的文本相关的超链接。\n' + \
    '**不要**编造超链接。\n' + \
    '如果在下面的文本中找不到答案,可以使用你先前所知道的知识,\n' + \
    '但在大多数情况下,答案是在文本中的。\n' + \
    # '如果问题与上下文不相关,请礼貌地回复您只回答与上下文相关的问题。\n' + \
    '请用中文以 Markdown 格式回答。\n'
}]
In [ ]:
import PyPDF2

def extract_text(pdf_file):
    '''Extract text from a PDF file.'''
    with open(pdf_file.name, 'rb') as f:
        return '\n\n'.join([page.extract_text() for page in PyPDF2.PdfReader(f).pages])
In [ ]:
def build_the_bot(pdf_file, openai_key=None):
    '''split sentences in chinese'''
    print('OpenAI Key:', openai_key)

    pdf_content = extract_text(pdf_file)
    print('\nText Length:', len(extra_text))

    print('\nBuilding the index...')
    indexer.add(embed(pdf_content))
    print('\nindex.ntotal:', indexer.ntotal)

    return pdf_content
In [ ]:
import openai
In [ ]:
def chat(chat_history, user_input):
    '''chat in chinese'''
    global sentences

    print('\nmessages_in_chinese:', messages_in_chinese)
    # messages_in_english.append({'role': 'user', 'content': 'Question:\n' + user_input})
    # print('\nmessages_in_english:', messages_in_english)

    print('\nSummarizing the chat history...')

    completion = openai.ChatCompletion.create(
        model = 'gpt-3.5-turbo',
        temperature = 0,
        messages = messages_in_chinese
    )

    summary = completion.choices[0].message.content
    print(f'\nSummarized Histoy: {summary}')

    extra_info = retrieve(summary + '\n\n' + '问题:' + user_input)

    chats_in_chinese.append({'role': '用户', 'content': '额外信息:\n' + extra_info + '\n\n' + '问题:' + user_input})

    print('\nchats_in_chinese:', chats_in_chinese)
    completion = openai.ChatCompletion.create(
        model = 'gpt-3.5-turbo',
        temperature = 0,
        messages = chats_in_chinese[:1] + chats_in_chinese[-1:]
    )

    chat_output = completion.choices[0].message.content
    print(f'\nChatGPT: {chat_output}')

    # messages_in_chinese.append({'role': '用户', 'content': user_input})
    # messages_in_chinese.append({'role': '助手', 'content': chat_output})
    yield chat_history + [(user_input, chat_output)]
In [ ]:
import gradio
In [ ]:
def test_demo(mock_openai):
    with gradio.Blocks() as demo:
        gradio.Markdown('Chat with a PDF document')
        with gradio.Tab('Select PDF'):
            pdf = gradio.File()
            openai_key = gradio.Textbox(label='OpenAI API Key',)
            text_output = gradio.Textbox(label='PDF content')
            text_button = gradio.Button('Build the Bot!!!')
            text_button.click(build_the_bot, [pdf, openai_key], text_output)
        with gradio.Tab('Knowledge Bot'):
            chatbot = gradio.Chatbot()
            message = gradio.Textbox('What is this document about?')
            message.submit(chat, [chatbot, message], chatbot)
    demo.queue().launch(debug = True)
    assert True
    demo.close()
In [ ]:
from ipymock import do
from ipymock.browser import common, get_conversation, mock_openai
In [ ]:
common.conversation_id = ''
In [ ]:
do(
    mock_openai=mock_openai,
    test_demo=test_demo,
)
=> no.0  ::tools::test_demo  setup  passed

Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
messages_in_chinese: [{'role': '系统', 'content': '你是一个 AI 代理。请用中文在三句话之内概括聊天内容。'}]

Summarizing the chat history...

Summarized Histoy: 本文讨论 TerraUSD 稳定币的稳定机制和去年的脱锚事件,并强调了维持“基础锚定市场”和“外部锚定市场”的套利行为所控制的市场的规模比较对于了解稳定币的稳定性很重要。最后,文章提出了将“外部锚定市场”转化为“基础锚定市场”是提高系统稳定性的唯一方法。

Retrieving extra information...
[575.85126 580.8882  583.3136  587.01587 588.3385  609.59955 610.3556
 611.7924  611.7924  611.7924  612.34534 612.8718  613.65656 614.2593
 617.09534 619.9896  622.2654  624.4966  624.9232  625.8043 ]
[ 6397  6622  3147 12978  4241  4792 11808  3182  3861  5811  6711  3874
  8512  2782  6918  1994 13386  3155  5450 12342]

result: 实际上,这是指我们的心思、情感和意志,从神以外的各样事物中蒙拯救,而固定在神这唯一的对象和独一的目标上。
因此,一个地方召会建立在其上的召会立场,必须是由“一”所构成,并在“一”里得维系;这一乃是由那灵执行,并由召会所在地保守的(李常受文集一九九三年第二册,九○至九一页)。
I. The Lord's recovery is unique, and it must be absolutely pure, single, and holy, without any mixture; thus, we need Ezras and Nehemiahs to carry out a purifying work; in all the steps of the Lord's recovery, there is the need of purification:
要履行同工或长老的义务,就必须有清洁的心,在主的恢复中,在存心、目的、动机和行动上,洁除了任何形式的狡猾雄心。
……我们若不应用这原则,一切未受钉十字架察验的天然性能、才干和美德,在我们中间就会像“野兽”一样。
我们必须非常纯净,使圣别的种类永远不会与任何外邦的事物混合(李常受文集一九六九年第二册,四九六至四九七页)。
E. Nehemiah, as the governor, in the position of a king, was a man with a pure heart for the rebuilding of Jerusalem's wall in carrying out God's economy; he was a pattern of what a leader among God's people should be—cf. 1 Tim. 3:2-7; 1 Pet. 5:1-3:
三 对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。
三 对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。
三 对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。
本篇信息的篇题是“洁净被掳归回之人的内在意义”。
我们……还要进一步的,把一切不好的存心,不该有的用意,不单纯的倾向,不正当的意志,有搀杂的情感等等,也都对付干净,然后灵才不只能出来,并且出来了,还能是正直的、纯净的。
2. The problem is that we have come back from Babylon to Jerusalem, yet at Jerusalem we may still keep many things for our own interests; we may not offer everything on the altar for God's interests and for God's satisfaction—Rom. 12:1:
在主恢复之外的人无法理解我们中间到底是怎么运作的。
对付灵重在对付我们里面不纯的动机、存心和其他杂质(帖前五23,提后一7)。
这里所说重新构成的需要,有如以色列人从埃及出来之时的需要;但从巴比伦归回的百姓因着和外邦人通婚而有了搀杂,使得情形更加艰难。
B. Recovery means the restoration or return to a normal condition after a damage or a loss has been incurred; recovery means to go back to God's original intention and standard as revealed in the Scriptures, which is according to the present advance of His recovery of the contents of God's eternal economy:
a. The Lord's recovery is the holy seed; we must be so pure that the holy seed will never be mingled with anything heathen.
1. In Romans 14 Paul was liberal and gracious regarding the receiving of those who differ in doctrine or practice; however, in Romans 16:17 he was unyielding and resolute in saying that we must "mark those who make divisions and causes of stumbling contrary to the teaching which you have learned, and turn away from them."
这两件事虽然简单,却会使我们有正确的思维,以领会本篇关于历代志中特别之事内在意义的信息。


chats_in_chinese: [{'role': '系统', 'content': '你是一个提供有用建议的 AI 助手。\n你被提供了一份长文档的一部分(额外信息)和一个问题。\n请根据我所提供的文本提供会话式的回答。\n你只应该提供与下面的文本相关的超链接。\n**不要**编造超链接。\n如果在下面的文本中找不到答案,可以使用你先前所知道的知识,\n但在大多数情况下,答案是在文本中的。\n请用中文以 Markdown 格式回答。\n'}, {'role': '用户', 'content': '额外信息:\n1.\u3000In Romans 14 Paul was liberal and gracious regarding the receiving of those who differ in doctrine or practice; however, in Romans 16:17 he was unyielding and resolute in saying that we must "mark those who make divisions and causes of stumbling contrary to the teaching which you have learned, and turn away from them."\n1.\u3000It is very difficult to find a person whose spirit is pure (7:1); pureness is the prerequisite in the leadership and a basic condition of our service (1 Tim. 3:9; 1:5); the problem of mixture is the greatest problem among workers; impureness is often the source of misunderstanding and suspicion (2 Tim. 1:3; 1 Tim. 3:9; Titus 1:15).\n反之,我们该问这里的真理是什么,也该问顺从真理是什么意思。\nA.\u3000All of us should look to the Lord and pray that we will have dispensational value to God; we need to ask ourselves what we are doing to close this dispensation and to bring in the next age, the kingdom age; this is a special time, so there is the need of special believers to do a special work.\nVI.\u3000With God\'s move, as the divine history, in man\'s history, there is the new creation—the new man with a new heart, a new spirit, a new life, a new nature, a new history, and a new consummation; we praise the Lord that we are in the divine history, experiencing and enjoying the mysterious, divine things for our organic salvation, so that we may make ourselves ready to become His overcoming bride to bring Him back—Hymns, #16; Rom. 5:10, 17-18, 21; 6:4; Ezek. 36:26; 2 Cor. 3:16-18; Matt. 5:8; Titus 3:5; Eph. 5:26-27; 6:17-18; Rev. 19:7; Matt. 24:44; 25:10.\n用这样的题目作为本次训练的总结,甚至作整本圣经结晶读经的总结,似乎让人感到意外。\nC.\u3000There was the need of teaching and reconstitution to bring the people of God into a culture that was according to God, a culture that expressed God; this kind of culture requires a great deal of education—v. 8.\n1.\u3000A factious man is a heretical, sectarian man who causes divisions by forming parties in the church according to his own opinions; in order to maintain good order in the church, a factious, divisive person should be refused, rejected, after a first and second admonition—v. 10.\n以赛亚为什么会得到这一个结论?又怎么根据这一个结论,而有了这一个说法?如果你把整卷以赛亚书都读过,你就能读出那一个原因。\nB.\u3000Recovery means the restoration or return to a normal condition after a damage or a loss has been incurred; recovery means to go back to God\'s original intention and standard as revealed in the Scriptures, which is according to the present advance of His recovery of the contents of God\'s eternal economy:\n1.\u3000Literally, the Greek words rendered "faith" mean "the faith"; this denotes the persistent faith for our persistent prayer, like that of the widow.\nI.\u3000The intrinsic significance of Ezra\'s ministry is embodied in the words purification, education, and reconstitution; the intrinsic significance of Nehemiah\'s leadership is embodied in the words separation, protection, and expression; we need to cooperate with the Lord in His heavenly ministry to build up the church as the house of God and the kingdom of God by living out and working out the New Jerusalem according to this intrinsic significance—1 Kings 8:48; Psa. 48:1-2; 1 Tim. 3:15; Eph. 2:21-22.\n”但我还要问:“你是为着什么赞美主?是什么时候赞美主呢?是一切都顺利,一切都美好的时候赞美主么?当你在手术台上的时候,能不能赞美主呢?当你要动心脏手术,在加护病房里,或是当你所爱的人过世的时候,你能不能赞美呢?”我们不是为着任何事件赞美主。\nC.\u3000The law makes demands on man according to what God is; grace supplies man with what God is to meet what God demands; grace is God enjoyed by man—John 1:16-17; Gal. 6:18; 2 Cor. 13:14; 12:9; 1 Pet. 4:10; Eph. 3:2; 4:29; 6:24.\nb.\u3000If we see that the prayers of the greatest worth are prayers in ascension, then we can understand that prayer is a warfare, and we will utter prayers of warfare; such is the nature of the prayer spoken of in Ephesians 6:\n3.\u3000If a church goes astray or is misled, the apostles have the obligation and responsibility to deal with the situation according to God\'s word, which has authority—vv. 26-27; 2 Cor. 10:6; 2 Tim. 1:13; 4:2.\nThe Intrinsic Significance of the Purification of the Returned Captives\n2.\u3000We all need to be helped through the Life-studies and the Recovery Version with the footnotes to see the intrinsic significance of the word of the Bible—Neh. 8:8, 13.\nB.\u3000They were unaware that the dispensation of law was altogether over, that the dispensation of grace should be fully honored, and that any disregard of the distinction between these two dispensations would be against God\'s dispensational administration and would be a great damage to God\'s economical plan for the building up of the church as the expression of Christ—John 1:16-17; Rev. 2:9.\nIII.\u3000In the Lord\'s recovery we need Ezras, priestly teachers who contact God, who are saturated with God, who are one with God, who are mingled with God, who are filled with God, and who are skillful in the Word of God; this is the kind of person who is qualified to be a teacher in the recovery—Matt. 13:52; 2 Cor. 3:5-6; 1 Tim. 2:7; 2 Tim. 1:11:\n\n\n问题:What is this document about?'}, {'role': '用户', 'content': '额外信息:\n实际上,这是指我们的心思、情感和意志,从神以外的各样事物中蒙拯救,而固定在神这唯一的对象和独一的目标上。\n因此,一个地方召会建立在其上的召会立场,必须是由“一”所构成,并在“一”里得维系;这一乃是由那灵执行,并由召会所在地保守的(李常受文集一九九三年第二册,九○至九一页)。\nI.\u3000The Lord\'s recovery is unique, and it must be absolutely pure, single, and holy, without any mixture; thus, we need Ezras and Nehemiahs to carry out a purifying work; in all the steps of the Lord\'s recovery, there is the need of purification:\n要履行同工或长老的义务,就必须有清洁的心,在主的恢复中,在存心、目的、动机和行动上,洁除了任何形式的狡猾雄心。\n……我们若不应用这原则,一切未受钉十字架察验的天然性能、才干和美德,在我们中间就会像“野兽”一样。\n我们必须非常纯净,使圣别的种类永远不会与任何外邦的事物混合(李常受文集一九六九年第二册,四九六至四九七页)。\nE.\u3000Nehemiah, as the governor, in the position of a king, was a man with a pure heart for the rebuilding of Jerusalem\'s wall in carrying out God\'s economy; he was a pattern of what a leader among God\'s people should be—cf. 1 Tim. 3:2-7; 1 Pet. 5:1-3:\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n本篇信息的篇题是“洁净被掳归回之人的内在意义”。\n我们……还要进一步的,把一切不好的存心,不该有的用意,不单纯的倾向,不正当的意志,有搀杂的情感等等,也都对付干净,然后灵才不只能出来,并且出来了,还能是正直的、纯净的。\n2.\u3000The problem is that we have come back from Babylon to Jerusalem, yet at Jerusalem we may still keep many things for our own interests; we may not offer everything on the altar for God\'s interests and for God\'s satisfaction—Rom. 12:1:\n在主恢复之外的人无法理解我们中间到底是怎么运作的。\n对付灵重在对付我们里面不纯的动机、存心和其他杂质(帖前五23,提后一7)。\n这里所说重新构成的需要,有如以色列人从埃及出来之时的需要;但从巴比伦归回的百姓因着和外邦人通婚而有了搀杂,使得情形更加艰难。\nB.\u3000Recovery means the restoration or return to a normal condition after a damage or a loss has been incurred; recovery means to go back to God\'s original intention and standard as revealed in the Scriptures, which is according to the present advance of His recovery of the contents of God\'s eternal economy:\na.\u3000The Lord\'s recovery is the holy seed; we must be so pure that the holy seed will never be mingled with anything heathen.\n1.\u3000In Romans 14 Paul was liberal and gracious regarding the receiving of those who differ in doctrine or practice; however, in Romans 16:17 he was unyielding and resolute in saying that we must "mark those who make divisions and causes of stumbling contrary to the teaching which you have learned, and turn away from them."\n这两件事虽然简单,却会使我们有正确的思维,以领会本篇关于历代志中特别之事内在意义的信息。\n\n\n问题:What is this document about?'}]

ChatGPT: 根据文本,召会立场必须由“一”所构成,并在“一”里得维系;这是由那灵执行,并由召会所在地保守的。因此,要履行同工或长老的义务,就必须有清洁的心,在主的恢复中,在存心、目的、动机和行动上,洁除任何形式的狡猾雄心。需要对付灵重在对付我

messages_in_chinese: [{'role': '系统', 'content': '你是一个 AI 代理。请用中文在三句话之内概括聊天内容。'}]

Summarizing the chat history...

Summarized Histoy: 好的,这次对话主要涉及到了对人类情感的理解、人工智能在医疗行业的应用、以及人工智能与工作的关系。

Retrieving extra information...
[560.0207  580.6549  599.6284  603.5715  604.7684  605.70654 606.26
 607.6616  609.8817  616.5469  618.50104 620.88055 622.4879  622.8662
 624.0831  626.81396 627.3507  628.6865  629.2973  631.0054 ]
[ 2690 12691  6988  7878 10302  3872  6436  7779  1832  1875   263  2023
  1885  3506 12498  2051  1817  2959 12342  7023]

result: 《对同工长老们以及爱主寻求主者爱心的话》一书,第四章的题目就是“正确的跟随人”。
”但我还要问:“你是为着什么赞美主?是什么时候赞美主呢?是一切都顺利,一切都美好的时候赞美主么?当你在手术台上的时候,能不能赞美主呢?当你要动心脏手术,在加护病房里,或是当你所爱的人过世的时候,你能不能赞美呢?”我们不是为着任何事件赞美主。
我们不该把启示录二十一、二十二章里“纯”、“明净”、“透明”这些辞视为理所当然,我们读的时候,需要对这些辞有更深入、更扩大的领会。
本篇信息乃是要将这些辞一一应用于我们的经历。
并且他这话不是凭空说的,也不是想像出来的;乃是他根据许多的事实,所产生出来的一个感觉。
我们每有一个行动,或者要说一句话,不只要问对不对,好不好,还要追查里面的存心清洁么?动机单纯么?目的专为着神么?有什么自私的用意么?有我们自己的倾向么?(李常受文集一九五三年第三册,六一四至六一六、六一九页)。
因为是讲关乎创造方面的事,就是一章里提到人,也是关乎创造方面、能力方面的。
当我们借由这分职事的帮助来读主话的时候,就能看见主的话是何等美妙。
到那时候你就晓得如何向别人陈明真理,不是仅仅激发或激动人,而是使人扎实,得着真理的构成(李常受文集一九八四年第二册,四○二至四○三页)。
”经学家的功用需要配上祭司的功用;祭司的功用是借着我们在灵里与主联合,与主是一而享受主,但其中也需要话。
可能你经历一段感情的结束,当时不明白为什么会发生这样的事,日后回想,才懂得感谢神。
这里所列诗篇一百一十九篇的经节,给我们看见诗人不仅爱神、寻求神的说话,他也有祭司经学家的功用。
我们都该盼望被人这样描述:这位弟兄对圣经爱不释手,并且他手中神的话就是他手中神的智慧。
在篇题里我们看见有人的历史,然而在人的历史里有神的历史。
有些人可能第一次听见这样的话,在此我们也只能讲到一些基本的内容。
”(世界局势与神的行动,三七页)长老与同工都该是祭司教师,就是习练于圣经中的话语,并且善于教导。
我和你们交通这事,是要让你们晓得我们的书撰写的方式。
在《对同工长老们以及爱主寻求主者爱心的话》一书中,有对我们的警告:“你在跟随任何你所欣赏,并叫你受吸引之同工的事上,必须谨慎。
这两件事虽然简单,却会使我们有正确的思维,以领会本篇关于历代志中特别之事内在意义的信息。
”我们各人都要在与主私下、亲密的交通中向主祷告,以回应本篇信息的话。


chats_in_chinese: [{'role': '系统', 'content': '你是一个提供有用建议的 AI 助手。\n你被提供了一份长文档的一部分(额外信息)和一个问题。\n请根据我所提供的文本提供会话式的回答。\n你只应该提供与下面的文本相关的超链接。\n**不要**编造超链接。\n如果在下面的文本中找不到答案,可以使用你先前所知道的知识,\n但在大多数情况下,答案是在文本中的。\n请用中文以 Markdown 格式回答。\n'}, {'role': '用户', 'content': '额外信息:\n1.\u3000In Romans 14 Paul was liberal and gracious regarding the receiving of those who differ in doctrine or practice; however, in Romans 16:17 he was unyielding and resolute in saying that we must "mark those who make divisions and causes of stumbling contrary to the teaching which you have learned, and turn away from them."\n1.\u3000It is very difficult to find a person whose spirit is pure (7:1); pureness is the prerequisite in the leadership and a basic condition of our service (1 Tim. 3:9; 1:5); the problem of mixture is the greatest problem among workers; impureness is often the source of misunderstanding and suspicion (2 Tim. 1:3; 1 Tim. 3:9; Titus 1:15).\n反之,我们该问这里的真理是什么,也该问顺从真理是什么意思。\nA.\u3000All of us should look to the Lord and pray that we will have dispensational value to God; we need to ask ourselves what we are doing to close this dispensation and to bring in the next age, the kingdom age; this is a special time, so there is the need of special believers to do a special work.\nVI.\u3000With God\'s move, as the divine history, in man\'s history, there is the new creation—the new man with a new heart, a new spirit, a new life, a new nature, a new history, and a new consummation; we praise the Lord that we are in the divine history, experiencing and enjoying the mysterious, divine things for our organic salvation, so that we may make ourselves ready to become His overcoming bride to bring Him back—Hymns, #16; Rom. 5:10, 17-18, 21; 6:4; Ezek. 36:26; 2 Cor. 3:16-18; Matt. 5:8; Titus 3:5; Eph. 5:26-27; 6:17-18; Rev. 19:7; Matt. 24:44; 25:10.\n用这样的题目作为本次训练的总结,甚至作整本圣经结晶读经的总结,似乎让人感到意外。\nC.\u3000There was the need of teaching and reconstitution to bring the people of God into a culture that was according to God, a culture that expressed God; this kind of culture requires a great deal of education—v. 8.\n1.\u3000A factious man is a heretical, sectarian man who causes divisions by forming parties in the church according to his own opinions; in order to maintain good order in the church, a factious, divisive person should be refused, rejected, after a first and second admonition—v. 10.\n以赛亚为什么会得到这一个结论?又怎么根据这一个结论,而有了这一个说法?如果你把整卷以赛亚书都读过,你就能读出那一个原因。\nB.\u3000Recovery means the restoration or return to a normal condition after a damage or a loss has been incurred; recovery means to go back to God\'s original intention and standard as revealed in the Scriptures, which is according to the present advance of His recovery of the contents of God\'s eternal economy:\n1.\u3000Literally, the Greek words rendered "faith" mean "the faith"; this denotes the persistent faith for our persistent prayer, like that of the widow.\nI.\u3000The intrinsic significance of Ezra\'s ministry is embodied in the words purification, education, and reconstitution; the intrinsic significance of Nehemiah\'s leadership is embodied in the words separation, protection, and expression; we need to cooperate with the Lord in His heavenly ministry to build up the church as the house of God and the kingdom of God by living out and working out the New Jerusalem according to this intrinsic significance—1 Kings 8:48; Psa. 48:1-2; 1 Tim. 3:15; Eph. 2:21-22.\n”但我还要问:“你是为着什么赞美主?是什么时候赞美主呢?是一切都顺利,一切都美好的时候赞美主么?当你在手术台上的时候,能不能赞美主呢?当你要动心脏手术,在加护病房里,或是当你所爱的人过世的时候,你能不能赞美呢?”我们不是为着任何事件赞美主。\nC.\u3000The law makes demands on man according to what God is; grace supplies man with what God is to meet what God demands; grace is God enjoyed by man—John 1:16-17; Gal. 6:18; 2 Cor. 13:14; 12:9; 1 Pet. 4:10; Eph. 3:2; 4:29; 6:24.\nb.\u3000If we see that the prayers of the greatest worth are prayers in ascension, then we can understand that prayer is a warfare, and we will utter prayers of warfare; such is the nature of the prayer spoken of in Ephesians 6:\n3.\u3000If a church goes astray or is misled, the apostles have the obligation and responsibility to deal with the situation according to God\'s word, which has authority—vv. 26-27; 2 Cor. 10:6; 2 Tim. 1:13; 4:2.\nThe Intrinsic Significance of the Purification of the Returned Captives\n2.\u3000We all need to be helped through the Life-studies and the Recovery Version with the footnotes to see the intrinsic significance of the word of the Bible—Neh. 8:8, 13.\nB.\u3000They were unaware that the dispensation of law was altogether over, that the dispensation of grace should be fully honored, and that any disregard of the distinction between these two dispensations would be against God\'s dispensational administration and would be a great damage to God\'s economical plan for the building up of the church as the expression of Christ—John 1:16-17; Rev. 2:9.\nIII.\u3000In the Lord\'s recovery we need Ezras, priestly teachers who contact God, who are saturated with God, who are one with God, who are mingled with God, who are filled with God, and who are skillful in the Word of God; this is the kind of person who is qualified to be a teacher in the recovery—Matt. 13:52; 2 Cor. 3:5-6; 1 Tim. 2:7; 2 Tim. 1:11:\n\n\n问题:What is this document about?'}, {'role': '用户', 'content': '额外信息:\n实际上,这是指我们的心思、情感和意志,从神以外的各样事物中蒙拯救,而固定在神这唯一的对象和独一的目标上。\n因此,一个地方召会建立在其上的召会立场,必须是由“一”所构成,并在“一”里得维系;这一乃是由那灵执行,并由召会所在地保守的(李常受文集一九九三年第二册,九○至九一页)。\nI.\u3000The Lord\'s recovery is unique, and it must be absolutely pure, single, and holy, without any mixture; thus, we need Ezras and Nehemiahs to carry out a purifying work; in all the steps of the Lord\'s recovery, there is the need of purification:\n要履行同工或长老的义务,就必须有清洁的心,在主的恢复中,在存心、目的、动机和行动上,洁除了任何形式的狡猾雄心。\n……我们若不应用这原则,一切未受钉十字架察验的天然性能、才干和美德,在我们中间就会像“野兽”一样。\n我们必须非常纯净,使圣别的种类永远不会与任何外邦的事物混合(李常受文集一九六九年第二册,四九六至四九七页)。\nE.\u3000Nehemiah, as the governor, in the position of a king, was a man with a pure heart for the rebuilding of Jerusalem\'s wall in carrying out God\'s economy; he was a pattern of what a leader among God\'s people should be—cf. 1 Tim. 3:2-7; 1 Pet. 5:1-3:\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n三\u3000对付灵重在对付我们里面不纯的动机、存心和其他杂质—帖前五23,提后一7。\n本篇信息的篇题是“洁净被掳归回之人的内在意义”。\n我们……还要进一步的,把一切不好的存心,不该有的用意,不单纯的倾向,不正当的意志,有搀杂的情感等等,也都对付干净,然后灵才不只能出来,并且出来了,还能是正直的、纯净的。\n2.\u3000The problem is that we have come back from Babylon to Jerusalem, yet at Jerusalem we may still keep many things for our own interests; we may not offer everything on the altar for God\'s interests and for God\'s satisfaction—Rom. 12:1:\n在主恢复之外的人无法理解我们中间到底是怎么运作的。\n对付灵重在对付我们里面不纯的动机、存心和其他杂质(帖前五23,提后一7)。\n这里所说重新构成的需要,有如以色列人从埃及出来之时的需要;但从巴比伦归回的百姓因着和外邦人通婚而有了搀杂,使得情形更加艰难。\nB.\u3000Recovery means the restoration or return to a normal condition after a damage or a loss has been incurred; recovery means to go back to God\'s original intention and standard as revealed in the Scriptures, which is according to the present advance of His recovery of the contents of God\'s eternal economy:\na.\u3000The Lord\'s recovery is the holy seed; we must be so pure that the holy seed will never be mingled with anything heathen.\n1.\u3000In Romans 14 Paul was liberal and gracious regarding the receiving of those who differ in doctrine or practice; however, in Romans 16:17 he was unyielding and resolute in saying that we must "mark those who make divisions and causes of stumbling contrary to the teaching which you have learned, and turn away from them."\n这两件事虽然简单,却会使我们有正确的思维,以领会本篇关于历代志中特别之事内在意义的信息。\n\n\n问题:What is this document about?'}, {'role': '用户', 'content': '额外信息:\n《对同工长老们以及爱主寻求主者爱心的话》一书,第四章的题目就是“正确的跟随人”。\n”但我还要问:“你是为着什么赞美主?是什么时候赞美主呢?是一切都顺利,一切都美好的时候赞美主么?当你在手术台上的时候,能不能赞美主呢?当你要动心脏手术,在加护病房里,或是当你所爱的人过世的时候,你能不能赞美呢?”我们不是为着任何事件赞美主。\n我们不该把启示录二十一、二十二章里“纯”、“明净”、“透明”这些辞视为理所当然,我们读的时候,需要对这些辞有更深入、更扩大的领会。\n本篇信息乃是要将这些辞一一应用于我们的经历。\n并且他这话不是凭空说的,也不是想像出来的;乃是他根据许多的事实,所产生出来的一个感觉。\n我们每有一个行动,或者要说一句话,不只要问对不对,好不好,还要追查里面的存心清洁么?动机单纯么?目的专为着神么?有什么自私的用意么?有我们自己的倾向么?(李常受文集一九五三年第三册,六一四至六一六、六一九页)。\n因为是讲关乎创造方面的事,就是一章里提到人,也是关乎创造方面、能力方面的。\n当我们借由这分职事的帮助来读主话的时候,就能看见主的话是何等美妙。\n到那时候你就晓得如何向别人陈明真理,不是仅仅激发或激动人,而是使人扎实,得着真理的构成(李常受文集一九八四年第二册,四○二至四○三页)。\n”经学家的功用需要配上祭司的功用;祭司的功用是借着我们在灵里与主联合,与主是一而享受主,但其中也需要话。\n可能你经历一段感情的结束,当时不明白为什么会发生这样的事,日后回想,才懂得感谢神。\n这里所列诗篇一百一十九篇的经节,给我们看见诗人不仅爱神、寻求神的说话,他也有祭司经学家的功用。\n我们都该盼望被人这样描述:这位弟兄对圣经爱不释手,并且他手中神的话就是他手中神的智慧。\n在篇题里我们看见有人的历史,然而在人的历史里有神的历史。\n有些人可能第一次听见这样的话,在此我们也只能讲到一些基本的内容。\n”(世界局势与神的行动,三七页)长老与同工都该是祭司教师,就是习练于圣经中的话语,并且善于教导。\n我和你们交通这事,是要让你们晓得我们的书撰写的方式。\n在《对同工长老们以及爱主寻求主者爱心的话》一书中,有对我们的警告:“你在跟随任何你所欣赏,并叫你受吸引之同工的事上,必须谨慎。\n这两件事虽然简单,却会使我们有正确的思维,以领会本篇关于历代志中特别之事内在意义的信息。\n”我们各人都要在与主私下、亲密的交通中向主祷告,以回应本篇信息的话。\n\n\n问题:这篇文档是关于什么的?'}]

ChatGPT: 请问这篇文章的主题是什么?

这篇文章的主题是基督徒的信仰生活以及如何正确地跟随上帝。它提到了如何在生活中以正确的动机行动,如何在困难时仍然赞美上帝,以及如何通过阅读圣经来更好地了解上帝的话语。此外,文章还提到了作为基督徒的责任和角色,包括成为教师和祭司。
Keyboard interruption in main thread... closing server.
Closing server running on port: 7860
=> no.0  ::tools::test_demo  runtest  passed

In [ ]:
from langchain.embeddings import HuggingFaceEmbeddings
HuggingFaceEmbeddings(model_name='GanymedeNil/text2vec-large-chinese')
Out[ ]:
HuggingFaceEmbeddings(client=SentenceTransformer(
  (0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
), model_name='GanymedeNil/text2vec-large-chinese')
Read More

2023-04-12
LangChain Embeddings

Open Text Embeddings

In [ ]:
%%bash
pip install --upgrade llama-cpp-python
Successfully installed llama-cpp-python-0.1.32 typing-extensions-4.5.0
In [ ]:
%%bash
pip install --upgrade git+https://github.com/huggingface/transformers
In [ ]:
%%bash
pip install tokenizers==0.13.3 protobuf==3.20.*
Requirement already satisfied: tokenizers==0.13.3 in /usr/local/anaconda3/envs/biobot/lib/python3.10/site-packages (0.13.3)
Requirement already satisfied: protobuf==3.20.* in /usr/local/anaconda3/envs/biobot/lib/python3.10/site-packages (3.20.3)
In [ ]:
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained('chavinlo/gpt4-x-alpaca')
model = AutoModelForSequenceClassification.from_pretrained('chavinlo/gpt4-x-alpaca', resume_download=True)
In [ ]:
%%bash
ls -lah ~/.cache/huggingface/hub/models--chavinlo--gpt4-x-alpaca/snapshots/6a571f458cab9a23d14324ec63e0abd1744c8353
total 0
drwxr-xr-x  14 saintway  staff   448B Apr 14 14:21 .
drwxr-xr-x   3 saintway  staff    96B Apr 12 21:08 ..
lrwxr-xr-x   1 saintway  staff    52B Apr 12 21:34 added_tokens.json -> ../../blobs/3e03d5f619baf8592fb936d63d05366f9304f7b2
lrwxr-xr-x   1 saintway  staff    52B Apr 12 21:43 config.json -> ../../blobs/849ee4b803bc92eb21e60c3946d20e4cbc69eefa
lrwxr-xr-x   1 saintway  staff    76B Apr 13 02:27 pytorch_model-00001-of-00006.bin -> ../../blobs/c022dd1d22c5ed2501abdb220f8315e6f51a5197026ed72bdbd2fdbac641d27b
lrwxr-xr-x   1 saintway  staff    76B Apr 13 13:32 pytorch_model-00002-of-00006.bin -> ../../blobs/5481821b5869b58b15c3175e712e41cd6b7b5596557b10aa2c2655a4cf019a7a
lrwxr-xr-x   1 saintway  staff    76B Apr 14 11:53 pytorch_model-00003-of-00006.bin -> ../../blobs/df46de31831a882cd57c9beefdad97e1ae442fe071871bad60223b23c1a08df9
lrwxr-xr-x   1 saintway  staff    76B Apr 14 13:21 pytorch_model-00004-of-00006.bin -> ../../blobs/0e5f42d9943bdbc6e12288733a65d6e337c2cc1a3ff90654cdf96df3f43437ee
lrwxr-xr-x   1 saintway  staff    76B Apr 14 14:06 pytorch_model-00005-of-00006.bin -> ../../blobs/6149b601c773fce7642e3424878c2c8182a221a2723e93d3da10e0f28850d00e
lrwxr-xr-x   1 saintway  staff    76B Apr 14 14:21 pytorch_model-00006-of-00006.bin -> ../../blobs/1b02c47b8a6151783c6ab90a8e5acba320940d2197cff255cf8f23eab10f8180
lrwxr-xr-x   1 saintway  staff    52B Apr 12 21:43 pytorch_model.bin.index.json -> ../../blobs/eb488e9b33396741832583081e6ca45eb6f4de49
lrwxr-xr-x   1 saintway  staff    52B Apr 12 21:34 special_tokens_map.json -> ../../blobs/318f9131477d72be713dcfee9da3a2e43d7ac8ad
lrwxr-xr-x   1 saintway  staff    76B Apr 12 21:34 tokenizer.model -> ../../blobs/9e556afd44213b6bd1be2b850ebbbd98f5481437a8021afaf58ee7fb1818d347
lrwxr-xr-x   1 saintway  staff    52B Apr 12 21:08 tokenizer_config.json -> ../../blobs/8edc6b4c1db134f5d717a6a4f271dfa3194f2295
In [ ]:
%%bash
ls -lah ~/.cache/huggingface/hub/models--chavinlo--gpt4-x-alpaca/blobs
total 101790056
drwxr-xr-x  14 saintway  staff   448B Apr 14 22:10 .
drwxr-xr-x   7 saintway  staff   224B Apr 14 22:10 ..
-rw-r--r--   1 saintway  staff   9.2G Apr 14 13:21 0e5f42d9943bdbc6e12288733a65d6e337c2cc1a3ff90654cdf96df3f43437ee
-rw-r--r--   1 saintway  staff   2.3G Apr 14 14:21 1b02c47b8a6151783c6ab90a8e5acba320940d2197cff255cf8f23eab10f8180
-rw-r--r--   1 saintway  staff    96B Apr 12 21:34 318f9131477d72be713dcfee9da3a2e43d7ac8ad
-rw-r--r--   1 saintway  staff    20B Apr 12 21:34 3e03d5f619baf8592fb936d63d05366f9304f7b2
-rw-r--r--   1 saintway  staff   9.3G Apr 14 22:10 5481821b5869b58b15c3175e712e41cd6b7b5596557b10aa2c2655a4cf019a7a
-rw-r--r--   1 saintway  staff   9.2G Apr 14 14:06 6149b601c773fce7642e3424878c2c8182a221a2723e93d3da10e0f28850d00e
-rw-r--r--   1 saintway  staff   535B Apr 12 21:43 849ee4b803bc92eb21e60c3946d20e4cbc69eefa
-rw-r--r--   1 saintway  staff   329B Apr 12 21:08 8edc6b4c1db134f5d717a6a4f271dfa3194f2295
-rw-r--r--   1 saintway  staff   488K Apr 12 21:34 9e556afd44213b6bd1be2b850ebbbd98f5481437a8021afaf58ee7fb1818d347
-rw-r--r--   1 saintway  staff   9.3G Apr 14 20:53 c022dd1d22c5ed2501abdb220f8315e6f51a5197026ed72bdbd2fdbac641d27b
-rw-r--r--   1 saintway  staff   9.3G Apr 14 11:53 df46de31831a882cd57c9beefdad97e1ae442fe071871bad60223b23c1a08df9
-rw-r--r--   1 saintway  staff    33K Apr 12 21:43 eb488e9b33396741832583081e6ca45eb6f4de49

In [ ]:
import os
from langchain.embeddings import LlamaCppEmbeddings
alpaca_embeddings = LlamaCppEmbeddings(model_path=os.path.expanduser('~/.cache/huggingface/hub/models--chavinlo--gpt4-x-alpaca/snapshots/6a571f458cab9a23d14324ec63e0abd1744c8353/model.bin'))
In [ ]:
# 准备文本
text = '这是一个测试文档。'

# 使用 HuggingFaceEmbeddings 生成文本嵌入
query_result = alpaca_embeddings.embed_query(text)
doc_result = alpaca_embeddings.embed_documents([text])

print(len(query_result))
# print(query_result)

print(len(doc_result))
print(len(doc_result[0]))
# print(doc_result)
In [ ]:
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id='Pi3141/gpt4-x-alpaca-native-13B-ggml', filename='consolidated.00.pth', resume_download=True)
Out[ ]:
'/Users/saintway/.cache/huggingface/hub/models--Pi3141--gpt4-x-alpaca-native-13B-ggml/snapshots/43cce6aab1b95712d83165afafa3c7baad140eb9/consolidated.00.pth'

In [ ]:
# 用 Python 去掉文件中最后一个字节
import os
with open(os.path.expanduser('~/.cache/huggingface/hub/models--Pi3141--gpt4-x-alpaca-native-13B-ggml/blobs/8d308284e190467111257950d4e8b34b1e3f19a70636fa6ea51dfa62f4cf5b55.incomplete'), 'rb+') as filehandle:
    filehandle.seek(-1, os.SEEK_END)
    filehandle.truncate()
In [ ]:
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id='Pi3141/gpt4-x-alpaca-native-13B-ggml', filename='ggml-model-q4_1.bin', resume_download=True)
Out[ ]:
'/Users/saintway/.cache/huggingface/hub/models--Pi3141--gpt4-x-alpaca-native-13B-ggml/snapshots/43cce6aab1b95712d83165afafa3c7baad140eb9/ggml-model-q4_1.bin'

In [ ]:
from huggingface_hub import snapshot_download
snapshot_download(repo_id='Pi3141/gpt4-x-alpaca-native-13B-ggml', resume_download=True)
Fetching 4 files:   0%|          | 0/4 [00:00<?, ?it/s]
Out[ ]:
'/Users/saintway/.cache/huggingface/hub/models--Pi3141--gpt4-x-alpaca-native-13B-ggml/snapshots/43cce6aab1b95712d83165afafa3c7baad140eb9'
In [ ]:
%%bash
ls -lah ~/.cache/huggingface/hub/models--Pi3141--gpt4-x-alpaca-native-13B-ggml/snapshots/43cce6aab1b95712d83165afafa3c7baad140eb9
total 0
drwxr-xr-x  6 saintway  staff   192B Apr 14 11:20 .
drwxr-xr-x  3 saintway  staff    96B Apr 12 23:05 ..
lrwxr-xr-x  1 saintway  staff    52B Apr 12 23:05 .gitattributes -> ../../blobs/c7d9f3332a950355d5a77d85000f05e6f45435ea
lrwxr-xr-x  1 saintway  staff    52B Apr 12 23:05 README.md -> ../../blobs/03dbe88acfdc7f800acf2423960468e1c852c9ba
lrwxr-xr-x  1 saintway  staff    76B Apr 14 11:20 consolidated.00.pth -> ../../blobs/fd8008066e6af8a094d3703b7e3bbcb64cdca43e964288758d3b3a1ba6e41499
lrwxr-xr-x  1 saintway  staff    76B Apr 13 09:49 ggml-model-q4_1.bin -> ../../blobs/8d308284e190467111257950d4e8b34b1e3f19a70636fa6ea51dfa62f4cf5b55
In [ ]:
%%bash
ls -lah ~/.cache/huggingface/hub/models--Pi3141--gpt4-x-alpaca-native-13B-ggml/blobs
total 90434208
drwxr-xr-x  9 saintway  staff   288B Apr 14 11:20 .
drwxr-xr-x  6 saintway  staff   192B Apr 14 11:20 ..
-rw-r--r--  1 saintway  staff   254B Apr 13 09:53 03dbe88acfdc7f800acf2423960468e1c852c9ba
-rw-r--r--@ 1 saintway  staff   9.1G Apr 13 09:53 8d308284e190467111257950d4e8b34b1e3f19a70636fa6ea51dfa62f4cf5b55
-rw-r--r--  1 saintway  staff   2.1G Apr 13 09:53 8d308284e190467111257950d4e8b34b1e3f19a70636fa6ea51dfa62f4cf5b55.incomplete.retry
-rw-r--r--  1 saintway  staff   1.4K Apr 13 09:53 c7d9f3332a950355d5a77d85000f05e6f45435ea
-rw-r--r--  1 saintway  staff    24G Apr 14 11:20 fd8008066e6af8a094d3703b7e3bbcb64cdca43e964288758d3b3a1ba6e41499
-rw-------  1 saintway  staff   6.2G Apr 13 09:53 fd8008066e6af8a094d3703b7e3bbcb64cdca43e964288758d3b3a1ba6e41499.incomplete.retry
-rw-r--r--  1 saintway  staff   1.5G Apr 13 09:53 fd8008066e6af8a094d3703b7e3bbcb64cdca43e964288758d3b3a1ba6e41499.incomplete.tempfile

In [ ]:
import os
from langchain.embeddings import LlamaCppEmbeddings
alpaca_embeddings = LlamaCppEmbeddings(model_path=os.path.expanduser('~/ggml-model-q4_1.bin'))
llama.cpp: loading model from /Users/saintway/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 512
llama_model_load_internal: n_embd     = 5120
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 40
llama_model_load_internal: n_layer    = 40
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 13824
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 13B
llama_model_load_internal: ggml ctx size =  73.73 KB
llama_model_load_internal: mem required  = 11359.03 MB (+ 3216.00 MB per state)
llama_init_from_file: kv self size  =  800.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 
In [ ]:
# 准备文本
text = '这是一个测试文档。'

# 使用 HuggingFaceInstructEmbeddings 生成文本嵌入
query_result = alpaca_embeddings.embed_query(text)
doc_result = alpaca_embeddings.embed_documents([text])

print(len(query_result))
# print(query_result)

print(len(doc_result))
print(len(doc_result[0]))
# print(doc_result)
llama_print_timings:        load time = 15205.17 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 28693.65 ms /    12 tokens ( 2391.14 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 28701.20 ms
5120
1
5120
llama_print_timings:        load time = 15205.17 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time =  3616.78 ms /    12 tokens (  301.40 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time =  3628.49 ms
In [ ]:
from langchain.document_loaders import DirectoryLoader, TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
In [ ]:
def get_docs(dir_name):
    # (1) Import a series of documents.
    loader = DirectoryLoader(dir_name, loader_cls=TextLoader, silent_errors=True)
    raw_documents = loader.load()
    # (2) Split them into small chunks.
    text_splitter = RecursiveCharacterTextSplitter(
        chunk_size=1024,
        chunk_overlap=64,
    )
    return text_splitter.split_documents(raw_documents)
In [ ]:
len(get_docs('_posts/ultimate-facts'))
Out[ ]:
26
In [ ]:
get_docs('_posts/ultimate-facts')[0]
Out[ ]:
Document(page_content='title: Neuroscience\ndate: 2021-10-14 16:30:20\ntags: Neuro\n---\n\nThe [**ventral tegmental area**](https://en.wikipedia.org/wiki/Ventral_tegmental_area) (**VTA**) (**tegmentum** is Latin for covering), also known as the **ventral tegmental area of Tsai**, or simply **ventral tegmentum**, is a group of neurons located close to the midline on the floor of the midbrain.\n\n---\n\n> \u3000\u3000有些权威认为,有必要把意识的内容 (content) 与“有意识状态的特性” (quality of being conscious) 或“意识本身” (consciousness as such) 区分开来²。这一划分与我的分类异曲同工。\n\u3000\u3000要想产生意识,必须先具备某些神经前提条件。我把这些条件称为 NCC_e。任一特定知觉的 NCC 都是局部作用的、高度特化的、转瞬即逝的,相比起来,NCC_e 的作用方式更全局化也更持久。要是没有相关的 NCC_e 的话,机体或许也还能有简单的行为,但在这样做时绝不会有意识(可能发生这种情形的某些病理条件将在第13章讨论)。根据定义可知,如果没有 NCC_e,就不可能形成任何 NCC。\n\u3000\u3000会不会有这样一种状态,即生物体虽然有意识,却意识不到任何具体内容?换句话说,NCC_e 能否脱离 NCC 而单独存在呢?某些冥想的目标就是要进入这种没有具体内容的意识形式³。但是在目前,还很难对它进行严格的分析。', metadata={'source': '_posts/ultimate-facts/Neuroscience.md'})
In [ ]:
get_docs('_posts/ultimate-facts')[1]
Out[ ]:
Document(page_content='> ² =>\n\u3000\u3000有关文献包括:\n* Moore, Philosophical Studies (1922)\n* Grossmann, "Are current concepts and methods in neuroscience inadequate for studying the neural basis of consciousness and mental activity?" (1980)\n* Baars, A Cognitive Theory of Consciousness (1988)\n* Baars, "Surprisingly small subcortical structures are needed for the state of waking consciousness, while cortical projection areas seem to provide perceptual contents of consciousness," (1995)\n* Bogen, "On the neurophysiology of consciousness: I. An overview,"(1995a)\n* Searle, "The Mystery of Consciousness", (2000)\n\n> ³ =>\n\u3000\u3000冥想的技巧就在于排除万念而只集中于一个想法、观念或者知觉。这要经过多年的修炼,才能遏制注意力的不断转换(第9章),把注意力长时间集中在一件事上而又不昏昏入睡。由于神经的适应性无时不在,对单件事的觉知会逐渐消退,使得脑中一片空白,主观上没有任何意识内容,但人还是清醒的。\n\n---', metadata={'source': '_posts/ultimate-facts/Neuroscience.md'})
In [ ]:
get_docs('_posts/ultimate-facts')[2]
Out[ ]:
Document(page_content='> 我们刚刚知道自然科学借以掌握质的方法––形成量的概念的方法。我们必须提出的问题是,这种方法是不是也能够适用于主观的意识的质。按照我们前面所说,为了使这种方法能够加以运用,必须有与这些质充分确定地、唯一地联系着的空间变化。如果情况真的如此,那么这个问题就可以通过空间–时间的重合方法来解决,因而**测量**便是可能的。但是,这种重合的方法本质上就是进行物理的观察,而就内省法来说,却不存在物理的观察这种事情。由此立刻就可以得出结论:心理学沿着内省的途径决不可能达到知识的理想。因此,它必须尽量使用物理的观察方法来达到它的目的。但这是不是可能的呢?是不是有依存于意识的质的空间变化,就像例如在光学中干涉带的宽度依存于颜色,在电学中磁铁的偏转度依存于磁场的强度那样呢?\n> 现在我们知道,事实上应当承认在主观的质和推断出来的客观世界之间有一种确切规定的、一义的配列关系。大量的经验材料告诉我们,我们可以发现,至少必须假设与所有经验唯一地联系着的“物理的”过程的存在。没有什么意识的质不可能受到作用于身体的力的影响。的确,我们甚至能够用一种简单的物理方法,例如吸进一种气体,就把意识全部消除掉。我们的行动与我们的意志经验相联系,幻觉与身体的疲惫相联系,抑郁症的发作与消化的紊乱相联系。为了研究这类相互联系,心的理论必须抛弃纯粹内省的方法而成为**生理的**心理学。只有这个学科才能在理论上达到对心理的东西的完全的知识。借助于这样一种心理学,我们就可以用概念和所与的主观的质相配列,正如我们能够用概念与推论出来的客观的质相配列一样。这样,主观的质就像客观的质一样成为可知的了。\n> 我们很早就指出,客观世界中最直接地与自我的主观的质相联系的部分就是由大脑的概念,特别是大脑皮层的概念所表示的那一部分。因而在科学知识的精确的世界图景中,可用数值描述的概念代替的主观质的,只是某些大脑过程。相互依存的分析不可避免要引向这些大脑过程。虽然我们还远没有确切地知道所涉及的是何种个别的过程,但至少指出了一条途径:必须以大脑过程来代替主观的质。这就是我们能够充分认识主观的质所具有的唯一的希望。\n> ……', metadata={'source': '_posts/ultimate-facts/Neuroscience.md'})
In [ ]:
get_docs('_posts/ultimate-facts')[3]
Out[ ]:
Document(page_content='> ……\n> ……诚然,可以按照某种任意的尺度使一些数与心理的量值相配列。但是这些量值并没有就归结为某种别的东西,因而彼此仍然是互不联系的。所以,我们不能说就知道了某种东西的性质或本质。这种情况与我们上面谈到的物理学上的例子完全相同。如果我们对“温度”本身的测量仅仅依据任意的标尺来对数进行配列,那么我们仍然没有知道“温度”的性质。但是热力学理论引入分子的平均运动能量来代替温度,同时也就为排除任何任意因素的量的处理方法提供了自然的原则。只有当量的关系不是单纯地反映一种任意的约定,而是从事物的本性中产生并且从事物本性中觉察到的时候,这种关系才真的是代表了一种**本质**的知识。正像温度在这里归结为力学的规定性,同样,意识的材料如果要真正地被认知,一般也必须依据自然的原则归结为物理的规定性。就温度的情况来说(也就是热的客观的质),只有通过物质的分子结构的假设才可能把它归结为力学的规定;同样,对主观的心理的质的知识需要有深入研究大脑过程本质的生理学假设。遗憾的是,这种研究的现状还不容许我们以实现心理学最终目标所需要的精确性来构述这种假设。\nーー《普通认识论》(M.石里克),31', metadata={'source': '_posts/ultimate-facts/Neuroscience.md'})
In [ ]:
import os
from langchain.embeddings import LlamaCppEmbeddings
from langchain.vectorstores.faiss import FAISS
In [ ]:
def ingest_docs(dir_name):
    documents = get_docs(dir_name)
    # (3) Create embeddings for each document (using text-embedding-ada-002).
    embeddings = LlamaCppEmbeddings(model_path=os.path.expanduser('~/ggml-model-q4_1.bin'), n_ctx=2048)
    return FAISS.from_documents(documents, embeddings)

vectorstore = ingest_docs('_posts/ultimate-facts')
llama.cpp: loading model from /Users/saintway/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 2048
llama_model_load_internal: n_embd     = 5120
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 40
llama_model_load_internal: n_layer    = 40
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 13824
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 13B
llama_model_load_internal: ggml ctx size =  73.73 KB
llama_model_load_internal: mem required  = 11359.03 MB (+ 3216.00 MB per state)
llama_init_from_file: kv self size  = 3200.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1234747.80 ms /   607 tokens ( 2034.18 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1234897.68 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1014295.96 ms /   384 tokens ( 2641.40 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1014467.79 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 3282788.17 ms /  1245 tokens ( 2636.78 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 3283401.24 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1918145.27 ms /   648 tokens ( 2960.10 ms per token)
llama_print_timings:        eval time = 20809.58 ms /     1 runs   (20809.58 ms per run)
llama_print_timings:       total time = 1939184.53 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 96082.05 ms /    30 tokens ( 3202.73 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 96150.74 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 507646.90 ms /   208 tokens ( 2440.61 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 507789.71 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 276020.03 ms /   115 tokens ( 2400.17 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 276108.72 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2019785.65 ms /   672 tokens ( 3005.63 ms per token)
llama_print_timings:        eval time = 21867.42 ms /     1 runs   (21867.42 ms per run)
llama_print_timings:       total time = 2041848.65 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 3602106.63 ms /  1131 tokens ( 3184.89 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 3602439.90 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 3230592.03 ms /  1040 tokens ( 3106.34 ms per token)
llama_print_timings:        eval time = 22766.44 ms /     1 runs   (22766.44 ms per run)
llama_print_timings:       total time = 3253751.32 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2692559.48 ms /  1530 tokens ( 1759.84 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2692893.27 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2117241.21 ms /  1428 tokens ( 1482.66 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2117414.25 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1295672.21 ms /  1255 tokens ( 1032.41 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1295802.91 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2584795.09 ms /  1406 tokens ( 1838.40 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2585014.00 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2833173.90 ms /  1514 tokens ( 1871.32 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2833446.52 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2497129.27 ms /  1459 tokens ( 1711.53 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2497330.28 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2323893.79 ms /  1448 tokens ( 1604.90 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2324101.06 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 424718.68 ms /   549 tokens (  773.62 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 424798.69 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2024465.75 ms /  1456 tokens ( 1390.43 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2024680.15 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 203939.74 ms /   407 tokens (  501.08 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 204026.72 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2015409.22 ms /  1524 tokens ( 1322.45 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2015592.15 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 147731.28 ms /   397 tokens (  372.12 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 147780.64 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 477176.94 ms /  1092 tokens (  436.98 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 477262.18 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 900018.45 ms /  1332 tokens (  675.69 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 900122.17 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 133290.49 ms /   490 tokens (  272.02 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 133351.61 ms

llama_print_timings:        load time = 12248.83 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 13613.44 ms /    53 tokens (  256.86 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 13634.46 ms
In [ ]:
import pickle
In [ ]:
# Save vectorstore
with open('vectorstore_13B_2048.pkl', 'wb') as f:
    pickle.dump(vectorstore, f)
In [ ]:
# Load vectorstore
with open('vectorstore_13B_2048.pkl', 'rb') as f:
    vectorstore = pickle.load(f)
llama.cpp: loading model from /Users/saintway/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 2048
llama_model_load_internal: n_embd     = 5120
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 40
llama_model_load_internal: n_layer    = 40
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 13824
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 13B
llama_model_load_internal: ggml ctx size =  73.73 KB
llama_model_load_internal: mem required  = 11359.03 MB (+ 3216.00 MB per state)
llama_init_from_file: kv self size  = 3200.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 
In [ ]:
question = '你知道什么?'
In [ ]:
# Get context related to the question from the embedding model
for context in vectorstore.similarity_search(question):
    print(f'{context}\n')
page_content='title: Neuroscience\ndate: 2021-10-14 16:30:20\ntags: Neuro\n---\n\nThe [**ventral tegmental area**](https://en.wikipedia.org/wiki/Ventral_tegmental_area) (**VTA**) (**tegmentum** is Latin for covering), also known as the **ventral tegmental area of Tsai**, or simply **ventral tegmentum**, is a group of neurons located close to the midline on the floor of the midbrain.\n\n---\n\n> \u3000\u3000有些权威认为,有必要把意识的内容 (content) 与“有意识状态的特性” (quality of being conscious) 或“意识本身” (consciousness as such) 区分开来²。这一划分与我的分类异曲同工。\n\u3000\u3000要想产生意识,必须先具备某些神经前提条件。我把这些条件称为 NCC_e。任一特定知觉的 NCC 都是局部作用的、高度特化的、转瞬即逝的,相比起来,NCC_e 的作用方式更全局化也更持久。要是没有相关的 NCC_e 的话,机体或许也还能有简单的行为,但在这样做时绝不会有意识(可能发生这种情形的某些病理条件将在第13章讨论)。根据定义可知,如果没有 NCC_e,就不可能形成任何 NCC。\n\u3000\u3000会不会有这样一种状态,即生物体虽然有意识,却意识不到任何具体内容?换句话说,NCC_e 能否脱离 NCC 而单独存在呢?某些冥想的目标就是要进入这种没有具体内容的意识形式³。但是在目前,还很难对它进行严格的分析。' metadata={'source': '_posts/ultimate-facts/Neuroscience.md'}

page_content='有意注意,是指,对于某次效果的注意。\n无意注意,是指,对于某次非效果的注意。\n\n目标,是指,对于某种效果的某些次记忆所联结着的对于此种效果的拟构。\n意向,是指,对于某些种效果的某些次记忆所联结着的对于某种效果的拟构。\n\n懊悔,是指,对于某次弊害效果的某次记忆、对于某次功效的某次记忆所联结着的对于某次功效的拟构。\n焦虑,是指,对于某次弊害效果的某次记忆、对于某次功效的某次意向所联结着的对于某次弊害效果的拟构。\n\n对于某次功效的目标,联结着,对于此次功效的原因。\n对于某种功效的概括,联结着,对于此种功效的原因。\n\n兴趣,是指,联结着某次快乐的识。\n荒诞,是指,联结着某次乏味的识。\n苦毒,是指,联结着某次痛苦的识。\n\n慾望,是指,对于某次兴趣的表征。\n妄想,是指,对于某次荒诞的表征。?\n苦观,是指,对于某次苦毒的表征。\n\n苦观,分为,记忆苦观、拟构苦观。弊害,…、…\n\n有趣注意,是指,对于某次兴趣的注意。\n无趣注意,是指,对于某次荒诞的注意。\n\n意义,是指,值得的注意。\n神圣,是指,极其丰富的意义。\n积极的态度,是指,充满对于某种意义的信心。\n消极的态度,是指,缺乏对于某种意义的信心。\n积极的注意,导致着,快乐。\n消极的注意,导致着,乏味。\n对于某种意义的怀疑,是指,对于某种意义的信心的减弱。\n对于某种意义的确定,是指,对于某种意义的信心的增强。\n对于某种意义的静思,是指,对于某种意义的减弱。对于某种意义的静思,导致着,忧郁。\n对于某种意义的禅修,是指,对于某种意义的增强。对于某种意义的禅修,导致着,幸福。\n静思、禅修、祷告,都是,某种定觉练习。\n\n---\n\n> 因为我们得了救是因着盼望。只是所盼望的若已得看见,便不是盼望了;因为人所看见的、他何必还盼望呢?但我们若盼望所未看见的,就必坚忍切候着。\n(罗马书 8:24-25 吕振中)\n\n> 所以青春性的私欲、你总要逃避;你要跟那些用洁净心呼求主的人一同追求正义、忠信、仁爱、和平。\n(提摩太后书 2:22 吕振中)\n\n向内往最深处去:净心、呼求主名、并且、等待回应。' metadata={'source': '_posts/ultimate-facts/终极真实.md'}

page_content='> 我们刚刚知道自然科学借以掌握质的方法––形成量的概念的方法。我们必须提出的问题是,这种方法是不是也能够适用于主观的意识的质。按照我们前面所说,为了使这种方法能够加以运用,必须有与这些质充分确定地、唯一地联系着的空间变化。如果情况真的如此,那么这个问题就可以通过空间–时间的重合方法来解决,因而**测量**便是可能的。但是,这种重合的方法本质上就是进行物理的观察,而就内省法来说,却不存在物理的观察这种事情。由此立刻就可以得出结论:心理学沿着内省的途径决不可能达到知识的理想。因此,它必须尽量使用物理的观察方法来达到它的目的。但这是不是可能的呢?是不是有依存于意识的质的空间变化,就像例如在光学中干涉带的宽度依存于颜色,在电学中磁铁的偏转度依存于磁场的强度那样呢?\n> 现在我们知道,事实上应当承认在主观的质和推断出来的客观世界之间有一种确切规定的、一义的配列关系。大量的经验材料告诉我们,我们可以发现,至少必须假设与所有经验唯一地联系着的“物理的”过程的存在。没有什么意识的质不可能受到作用于身体的力的影响。的确,我们甚至能够用一种简单的物理方法,例如吸进一种气体,就把意识全部消除掉。我们的行动与我们的意志经验相联系,幻觉与身体的疲惫相联系,抑郁症的发作与消化的紊乱相联系。为了研究这类相互联系,心的理论必须抛弃纯粹内省的方法而成为**生理的**心理学。只有这个学科才能在理论上达到对心理的东西的完全的知识。借助于这样一种心理学,我们就可以用概念和所与的主观的质相配列,正如我们能够用概念与推论出来的客观的质相配列一样。这样,主观的质就像客观的质一样成为可知的了。\n> 我们很早就指出,客观世界中最直接地与自我的主观的质相联系的部分就是由大脑的概念,特别是大脑皮层的概念所表示的那一部分。因而在科学知识的精确的世界图景中,可用数值描述的概念代替的主观质的,只是某些大脑过程。相互依存的分析不可避免要引向这些大脑过程。虽然我们还远没有确切地知道所涉及的是何种个别的过程,但至少指出了一条途径:必须以大脑过程来代替主观的质。这就是我们能够充分认识主观的质所具有的唯一的希望。\n> ……' metadata={'source': '_posts/ultimate-facts/Neuroscience.md'}

page_content='客体方式,导致着、联结着,主体方式、机体状态\n形体,导致着、联结着,身体、快乐、痛苦\n轻蔑、轻视他人对自己的态度,损害着,羞耻心\n羞耻,对于亲密程度的重视;我们在争辩的时候,真正损害着羞耻心的,实际上是,轻视他人对自己的态度,而不是,轻视他人的(由父所创造的)信念?\n羞耻、光荣,重视他人对自己的态度、敬重\n恥辱、傲慢,轻视他人对自己的态度、轻蔑\n羞耻、羞辱,在含义上,有所不同吗?\n单方的轻视、双方的轻视?\n一方,是,非吾所显明出来的罪;一方,是,吾所显明出来的罪。\n狭隘、愚蠢、固执,轻视他人的信念\n开明、智慧、变通,重视他人的信念' metadata={'source': '_posts/ultimate-facts/终极真实.md'}

llama_print_timings:        load time =  6111.23 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time =  6109.85 ms /     8 tokens (  763.73 ms per token)
llama_print_timings:        eval time = 10089.46 ms /     1 runs   (10089.46 ms per run)
llama_print_timings:       total time = 16205.01 ms

Open Text Embeddings

In [ ]:
%%bash
pip install --upgrade sentence-transformers
Successfully installed nltk-3.8.1 scikit-learn-1.2.2 scipy-1.10.1 sentence-transformers-2.2.2 sentencepiece-0.1.97 threadpoolctl-3.1.0
In [ ]:
from langchain.embeddings import HuggingFaceEmbeddings
In [ ]:
help(HuggingFaceEmbeddings)
In [ ]:
help(HuggingFaceEmbeddings.__init__)
Help on function __init__ in module langchain.embeddings.huggingface:

__init__(self, **kwargs: Any)
    Initialize the sentence_transformer.

In [ ]:
HuggingFaceEmbeddings(model_name='sentence-transformers/all-mpnet-base-v2')
In [ ]:
hf_embeddings = HuggingFaceEmbeddings()

# 准备文本
text = '这是一个测试文档。'

# 使用 HuggingFaceEmbeddings 生成文本嵌入
query_result = hf_embeddings.embed_query(text)
doc_result = hf_embeddings.embed_documents([text])

print(len(query_result))
# print(query_result)

print(len(doc_result))
print(len(doc_result[0]))
# print(doc_result)
768
1
768
In [ ]:
hf_embeddings.model_name
Out[ ]:
'sentence-transformers/all-mpnet-base-v2'
In [ ]:
%%bash
ls -lah ~/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2
total 857056
drwxr-xr-x  16 saintway  staff   512B Apr 12 14:31 .
drwxr-xr-x   5 saintway  staff   160B Apr 19 17:23 ..
-rw-r--r--   1 saintway  staff   1.1K Apr 12 14:28 .gitattributes
drwxr-xr-x   3 saintway  staff    96B Apr 12 14:28 1_Pooling
-rw-r--r--   1 saintway  staff    10K Apr 12 14:28 README.md
-rw-r--r--   1 saintway  staff   571B Apr 12 14:28 config.json
-rw-r--r--   1 saintway  staff   116B Apr 12 14:28 config_sentence_transformers.json
-rw-r--r--   1 saintway  staff    38K Apr 12 14:28 data_config.json
-rw-r--r--   1 saintway  staff   349B Apr 12 14:31 modules.json
-rw-r--r--   1 saintway  staff   418M Apr 12 14:31 pytorch_model.bin
-rw-r--r--   1 saintway  staff    53B Apr 12 14:31 sentence_bert_config.json
-rw-r--r--   1 saintway  staff   239B Apr 12 14:31 special_tokens_map.json
-rw-r--r--   1 saintway  staff   455K Apr 12 14:31 tokenizer.json
-rw-r--r--   1 saintway  staff   363B Apr 12 14:31 tokenizer_config.json
-rw-r--r--   1 saintway  staff    13K Apr 12 14:31 train_script.py
-rw-r--r--   1 saintway  staff   226K Apr 12 14:31 vocab.txt
In [ ]:
%%bash
du -sh ~/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2
418M	/Users/saintway/.cache/torch/sentence_transformers/sentence-transformers_all-mpnet-base-v2
In [ ]:
%%bash
pip install --upgrade InstructorEmbedding
Successfully installed InstructorEmbedding-1.0.0
In [ ]:
from langchain.embeddings import HuggingFaceInstructEmbeddings
hfi_embeddings = HuggingFaceInstructEmbeddings(model_name='hkunlp/instructor-large')
load INSTRUCTOR_Transformer
max_seq_length  512
In [ ]:
hfi_embeddings.model_name
Out[ ]:
'hkunlp/instructor-large'
In [ ]:
%%bash
ls -lah ~/.cache/torch/sentence_transformers/hkunlp_instructor-large
total 2623328
drwxr-xr-x  15 saintway  staff   480B Apr 12 15:19 .
drwxr-xr-x   5 saintway  staff   160B Apr 19 17:23 ..
-rw-r--r--   1 saintway  staff   1.4K Apr 12 15:07 .gitattributes
drwxr-xr-x   3 saintway  staff    96B Apr 12 15:07 1_Pooling
drwxr-xr-x   4 saintway  staff   128B Apr 12 15:08 2_Dense
-rw-r--r--   1 saintway  staff    65K Apr 12 15:08 README.md
-rw-r--r--   1 saintway  staff   1.5K Apr 12 15:08 config.json
-rw-r--r--   1 saintway  staff   122B Apr 12 15:08 config_sentence_transformers.json
-rw-r--r--   1 saintway  staff   461B Apr 12 15:19 modules.json
-rw-r--r--   1 saintway  staff   1.2G Apr 12 15:19 pytorch_model.bin
-rw-r--r--   1 saintway  staff    53B Apr 12 15:19 sentence_bert_config.json
-rw-r--r--   1 saintway  staff   2.1K Apr 12 15:19 special_tokens_map.json
-rw-r--r--   1 saintway  staff   773K Apr 12 15:19 spiece.model
-rw-r--r--   1 saintway  staff   2.3M Apr 12 15:19 tokenizer.json
-rw-r--r--   1 saintway  staff   2.4K Apr 12 15:19 tokenizer_config.json
In [ ]:
%%bash
du -sh ~/.cache/torch/sentence_transformers/hkunlp_instructor-large
1.3G	/Users/saintway/.cache/torch/sentence_transformers/hkunlp_instructor-large
In [ ]:
# 准备文本
text = '这是一个测试文档。'

# 使用 HuggingFaceInstructEmbeddings 生成文本嵌入
query_result = hfi_embeddings.embed_query(text)
doc_result = hfi_embeddings.embed_documents([text])

print(len(query_result))
print(query_result)

print(len(doc_result))
print(len(doc_result[0]))
print(doc_result)
768
[-0.022137142717838287, -0.019943105056881905, 0.009940845891833305, 0.029961414635181427, 0.0015559268649667501, -0.0010082109365612268, 0.004636477679014206, 0.006970031186938286, -0.039788346737623215, 0.028241422027349472, -1.5192752471193671e-05, -0.008512390777468681, 0.04590446129441261, 0.03056621551513672, -0.030894720926880836, -0.02884022891521454, -0.023664429783821106, -0.010090871714055538, -0.036661747843027115, -0.001970992423593998, 0.05847157910466194, 0.008038687519729137, -0.012776742689311504, 0.05411699786782265, 0.01262636948376894, 0.016430772840976715, -0.04767526313662529, 0.01811787858605385, 0.04832480102777481, -0.0647105798125267, 0.03377210721373558, -0.04854683578014374, -0.040563128888607025, -0.04772289842367172, -0.018774421885609627, 0.020985594019293785, 0.025719504803419113, 0.027344582602381706, 0.026014933362603188, 0.055159278213977814, -0.01577085256576538, 0.01060266699641943, -0.0031603227835148573, -0.039208076894283295, 0.03614024817943573, 0.009471523575484753, -0.025426877662539482, -0.04541698843240738, 0.026563631370663643, -0.03881140425801277, -0.03588118404150009, -0.057559046894311905, -0.007960007525980473, 0.012319786474108696, -0.0029835468158125877, -0.029109695926308632, -0.06043725088238716, 0.03710782155394554, 0.08494839072227478, -0.054077211767435074, -0.03525502607226372, -0.0031806030310690403, -0.09065768867731094, 0.023320553824305534, 0.02501724287867546, -0.05140731483697891, 0.048127785325050354, -0.05498746410012245, 0.029325366020202637, -0.04640709608793259, 0.01205480471253395, -0.047244541347026825, 0.00035423680674284697, -0.09959323704242706, -0.027633335441350937, 0.001402342109940946, 0.02929595485329628, 0.046018004417419434, -0.05788029357790947, 0.042901281267404556, 0.03905021399259567, 0.0020306624937802553, 0.048880625516176224, -0.0019414519192650914, -0.033322807401418686, 0.028527161106467247, -0.005001544952392578, 0.019440239295363426, 0.0041367351077497005, 0.041833482682704926, -0.03431558609008789, -0.0706053078174591, -0.01964596100151539, 0.00529050687327981, -0.004017329774796963, 0.020387377589941025, 0.0496586374938488, 0.006946606561541557, 0.03991807624697685, 0.037570007145404816, 0.03404153883457184, 0.05588211491703987, -0.02905808761715889, 0.03623465821146965, -0.013191419653594494, 0.009090606123209, -0.020825188606977463, -0.02675699256360531, -0.04974988102912903, -0.0004641334235202521, -0.016248611733317375, -0.055453505367040634, -0.014421780593693256, 0.038791216909885406, -0.003007616614922881, -0.05522274225950241, 0.06346995383501053, -0.054133057594299316, -0.06531116366386414, -0.02393488958477974, 0.027049822732806206, 0.021163685247302055, -0.045149073004722595, -0.005699407774955034, -0.0549631305038929, 0.019174829125404358, -0.020559104159474373, 0.0040987106040120125, -0.01622997410595417, 0.003300424898043275, -0.010149079374969006, 0.021996449679136276, 0.041733454912900925, -0.09496010094881058, 0.021827906370162964, 0.014840630814433098, -0.04588484764099121, 0.02394992485642433, 0.016791993752121925, 0.08624919503927231, -0.06361847370862961, -0.03944281488656998, -0.04442731291055679, 0.007785744499415159, -0.023762937635183334, -0.0110867815092206, 0.01138637587428093, -0.05897051468491554, -0.04304634779691696, -0.0173543319106102, 0.06624708324670792, -0.0437123104929924, 0.004276968538761139, 0.07888749241828918, -0.0071301888674497604, 0.024873679503798485, -0.018245670944452286, 0.004486299119889736, 0.00582241453230381, 0.02243458852171898, -0.030916478484869003, 0.049587175250053406, -0.010419673286378384, -0.022187191992998123, -0.0791892409324646, -0.02702951990067959, -0.0035843446385115385, 0.05750065669417381, -0.018682042136788368, -0.030490878969430923, -0.08072890341281891, 0.024044500663876534, 0.05379054695367813, 0.01158835832029581, -0.02660636231303215, 0.03985058143734932, 0.03334967792034149, 0.030472831800580025, -0.02080536261200905, 0.04899463802576065, 0.010174624621868134, -0.015453080646693707, -0.029648398980498314, 0.04518602415919304, 0.0644007995724678, -0.015453620813786983, 0.012724599801003933, 0.02410477213561535, 0.021669277921319008, -0.047304801642894745, -0.0030988911166787148, 0.06250063329935074, -0.037959348410367966, -0.016027355566620827, 0.03403116390109062, -0.0007538921781815588, -0.04373054951429367, 0.024864956736564636, -0.017527837306261063, -0.004101598169654608, -0.0481080487370491, 0.010937296785414219, 0.02215939201414585, 0.042132746428251266, -0.005298169795423746, 0.05001835525035858, -0.03381647542119026, 0.07707470655441284, -0.01247261743992567, 0.015081333927810192, -0.04821961373090744, -0.05602756887674332, 0.002172428648918867, 0.03414832800626755, 0.05385158583521843, 0.03951353579759598, -0.03862477093935013, -0.06857028603553772, 0.05580616369843483, 0.047364167869091034, 0.04966306313872337, 0.00995559711009264, -0.033690739423036575, 0.011581477709114552, 0.035535167902708054, 0.03085923381149769, -0.04816819354891777, -0.03495897352695465, 0.006372313015162945, 0.05013415589928627, -0.029227256774902344, 0.0053755310364067554, -0.019459571689367294, 0.024346565827727318, -0.034451521933078766, -0.0677531510591507, 0.03487487509846687, 0.04172320291399956, 0.010180668905377388, 0.016491739079356194, -0.01668640412390232, 0.03754301741719246, 0.023817863315343857, 0.021770311519503593, 0.02320024184882641, -0.03048897720873356, 0.023136703297495842, -0.019154028967022896, 0.06983145326375961, -0.013741375878453255, 0.03929886966943741, 0.012652753852307796, 0.015791112557053566, 0.007288077380508184, -0.04030032828450203, 0.020244285464286804, 0.0701761543750763, 0.014144702814519405, -0.0366959422826767, 0.034101251512765884, 0.027012642472982407, 0.04800959303975105, 0.07189490646123886, 0.00042301067151129246, 0.04226808249950409, -0.007224685046821833, 0.03213008865714073, 0.03385363519191742, 0.009528609924018383, 0.013251561671495438, 0.025025293231010437, 0.08515191823244095, -0.004974443931132555, -0.01735675148665905, 0.0720532163977623, -0.03935912624001503, 0.004844623617827892, -0.04394184425473213, 0.011392495594918728, -0.03961816802620888, -0.021686410531401634, 0.0632035881280899, -2.6600875571602955e-05, -0.018001483753323555, 0.0002045980654656887, -0.014556610025465488, 0.009118364192545414, 0.025560518726706505, -0.007447301875799894, 0.019972093403339386, -0.015712067484855652, -0.024550966918468475, 0.023652231320738792, -0.0584896020591259, -0.01404705923050642, -0.017441358417272568, -0.040668584406375885, 0.03344985097646713, -0.06545151770114899, -0.0015352212358266115, -0.059208810329437256, -0.034206390380859375, 0.031709667295217514, 0.031845979392528534, 0.017346983775496483, -0.0192494485527277, 0.04217034950852394, -0.04041285440325737, -0.05436360463500023, -0.03852096572518349, -0.04090946912765503, -0.044468097388744354, -0.05580539256334305, 0.04195259511470795, 0.04524538293480873, -0.001072112238034606, 0.05045463517308235, -0.007403041701763868, -0.011037559248507023, -0.0481581874191761, 0.05748680979013443, 0.021998926997184753, -0.0114741837605834, -0.023216141387820244, 0.02764948643743992, 0.0033738191705197096, -0.015397194772958755, -0.04408087953925133, -0.025693349540233612, 0.08350582420825958, 0.08186513930559158, 0.02589094638824463, 0.031298864632844925, 0.022997794672846794, -0.0705040693283081, -0.017929619178175926, -0.0386652797460556, -0.021253539249300957, -0.011709196493029594, -0.04891839995980263, -0.034260012209415436, -0.010942338034510612, -0.019566839560866356, -0.011726225726306438, -0.0073863305151462555, -0.021809587255120277, 0.031185846775770187, 0.036898598074913025, 0.03579287230968475, 0.03630955517292023, -0.008991124108433723, -0.009002245031297207, 0.08667944371700287, 0.0010887794196605682, -0.032698702067136765, -0.06335387378931046, -0.048804596066474915, 0.02329985983669758, 0.005369881168007851, 0.018586451187729836, -0.051516350358724594, 0.04263807460665703, -0.0006810427876189351, -0.001103260088711977, 0.02041923999786377, -0.02518085390329361, 0.007012072950601578, 0.0016074466984719038, 0.010585247538983822, -0.01600584201514721, -0.06097882241010666, 0.006132303737103939, -0.02095993608236313, 0.03893598914146423, -0.05109530687332153, -0.01899784617125988, -0.011300088837742805, 0.009710361249744892, 0.011983739212155342, -0.013006223365664482, -0.04143975302577019, 0.010285450145602226, -0.06305649876594543, -0.03500263765454292, -0.016994699835777283, 0.019823139533400536, 0.010417548008263111, 0.08123686909675598, 0.028307151049375534, -0.00701523432508111, 0.03513439744710922, 0.002012860495597124, 0.05926254391670227, 0.041931524872779846, -0.014769182540476322, 0.03460005670785904, -0.019610265269875526, 0.027883131057024002, 0.013702291995286942, -0.016595499590039253, -0.03288355842232704, -0.06714218854904175, -0.051795538514852524, 0.032413337379693985, -0.013448472134768963, -0.002694027731195092, 0.04136023297905922, -0.059142980724573135, -0.01380129437893629, -0.0022579259239137173, 0.0219892431050539, 0.021225525066256523, -0.04053009673953056, 0.03726652264595032, -0.021588211879134178, 0.02056734822690487, -0.02374904789030552, 0.003405689960345626, -0.03571395203471184, -0.030117657035589218, 0.006589301861822605, 0.04827360436320305, 0.011746781878173351, 0.047028761357069016, 0.07872718572616577, 0.00854527484625578, -0.031543463468551636, 0.046509627252817154, 0.05302605777978897, 0.02241320163011551, -0.05144788697361946, 0.00531784538179636, -0.008528214879333973, -0.010467768646776676, -0.017910946160554886, -0.0448242723941803, 0.003639540169388056, 0.055717598646879196, -0.005372322164475918, -0.01859535463154316, 1.9491570128593594e-05, -0.017520388588309288, -0.02086714655160904, -0.06756243854761124, 0.016911156475543976, 0.020075716078281403, -0.028387082740664482, -0.014232601039111614, 0.06091458722949028, 0.015551713295280933, 0.05874437093734741, 0.011747990734875202, -0.039615631103515625, -0.04280305281281471, 0.029752986505627632, 0.009051498025655746, -0.062423039227724075, -0.03705782815814018, -0.040770962834358215, 0.030891701579093933, 0.030155127868056297, -0.007816113531589508, -0.0807504653930664, 0.017831768840551376, 0.05006144940853119, -0.05361318588256836, 0.062341079115867615, 0.025491494685411453, 0.048408396542072296, 0.029084276407957077, -0.015447879210114479, -0.00034940679324790835, -0.017930610105395317, -0.006148740649223328, -0.009926981292665005, 0.0582754872739315, -0.015238925814628601, -0.03550595045089722, -0.03390232101082802, 0.03024483472108841, 0.006002285983413458, 0.03796408697962761, 0.019458049908280373, -0.031131630763411522, -0.04120856150984764, 0.010978765785694122, 0.0333918035030365, -0.04785642772912979, 0.022198036313056946, 0.04413451626896858, 0.019193124026060104, -0.03626841679215431, -0.031137170270085335, -0.002764541655778885, 0.007364119868725538, 0.06619369983673096, -0.028123170137405396, -0.035441718995571136, -0.042127810418605804, 0.01750461757183075, 0.008765813894569874, -0.046932898461818695, -0.09832718968391418, 0.028079211711883545, -0.001491512986831367, -0.03492061793804169, 0.05971066281199455, 0.02804477885365486, 0.024293120950460434, 0.08744291216135025, -0.008789492771029472, 0.01302084419876337, -0.020782649517059326, 0.04509878158569336, -0.029434096068143845, -0.03194120153784752, 0.01338726095855236, -0.05421733483672142, -0.02326781488955021, -0.041257284581661224, -0.04912155494093895, -0.031217290088534355, 0.006082997191697359, 0.033354438841342926, -0.0216062068939209, 0.010425982065498829, 0.01690390706062317, 0.01642853394150734, 0.0015028663910925388, -0.05256250873208046, -0.008604401722550392, -0.04340226203203201, -0.06464898586273193, -0.04076193645596504, 0.03596508502960205, -0.01954132877290249, 0.02018481120467186, 0.011362768709659576, 0.02293892204761505, 0.015474352054297924, -0.011335867457091808, -0.02486458234488964, 0.026126177981495857, 0.02133898064494133, -0.04850659891963005, -0.045282673090696335, -0.030667219310998917, 0.008212651126086712, 0.01518244668841362, -0.04165206849575043, 0.03790992125868797, 0.02218039147555828, -0.01681869477033615, -0.02027173899114132, 0.009450569748878479, 0.015175608918070793, -0.04803943634033203, -0.06358246505260468, -0.013711309060454369, 0.009996723383665085, 0.040636055171489716, -0.042011044919490814, -0.011027892120182514, 0.02691529504954815, 0.057163577526807785, 0.03753253072500229, 0.022043783217668533, -0.0021431820932775736, 0.04917208105325699, -0.04179786145687103, -0.005483817774802446, -0.08106370270252228, 0.024761244654655457, -0.016964280977845192, 0.03641534224152565, -0.010911267250776291, -0.0011809802381321788, -0.05593414604663849, 0.04463743418455124, -0.04375195503234863, -0.037942975759506226, -0.003339756280183792, 0.014220676384866238, -0.04019850865006447, 0.053015731275081635, -0.028724318370223045, 0.003802355146035552, -0.037122998386621475, 0.030996421352028847, -0.03507940098643303, -0.0007456461898982525, -0.006219014525413513, -0.0005068734171800315, -0.06874105334281921, -0.027668355032801628, -0.015170485712587833, -0.0672307014465332, 0.0110006770119071, 0.04290778934955597, 0.0037627213168889284, 0.01036884170025587, -0.007260350044816732, -0.014498177915811539, 0.008817058056592941, -0.047402523458004, -0.01808319240808487, -0.05033589527010918, -0.028884392231702805, 0.0035344050265848637, 0.03218654543161392, 0.03320618346333504, -0.05054805800318718, -0.0503070168197155, 0.048324212431907654, 0.045269548892974854, 0.006230846047401428, 0.0028933598659932613, 0.03576548025012016, 0.039641764014959335, 0.04235326126217842, 0.00390684325248003, 0.017620764672756195, -0.05768784508109093, 0.005895737558603287, 0.0004468218539841473, -0.006375355180352926, 0.0018062518211081624, -0.01394017692655325, -0.05188938230276108, -0.018782146275043488, 0.09841680526733398, 0.03368517756462097, 0.02949652634561062, -0.02045777440071106, -0.05439259484410286, 0.04644351080060005, 0.02802385576069355, -0.031084785237908363, 0.018647707998752594, 0.015535857528448105, -0.0347856730222702, 0.07113273441791534, 0.02331412024796009, 0.03137088567018509, 0.045221082866191864, 0.01769883558154106, -0.02390470542013645, 0.02507965639233589, -0.03268289566040039, -0.0027856382075697184, 0.03365938365459442, -0.05175941064953804, 0.006154587958008051, -0.033265549689531326, 0.05281004682183266, -0.0404675267636776, 0.0657331719994545, 0.05071451887488365, 0.0020178519189357758, 0.014635175466537476, -0.03720288723707199, -0.010401709005236626, 0.03344612568616867, -0.010997913777828217, 0.06176922470331192, -0.016880199313163757, -0.07420120388269424, 0.04998021200299263, 0.03931588679552078, -0.07584240287542343, 0.023533020168542862, 0.0006756161455996335, 0.02090786024928093, 0.036075837910175323, 0.03659137338399887, -0.05161881819367409, -0.006765023805201054, -0.005993164610117674, 0.013982019387185574, -0.020381171256303787, -0.029386788606643677, 0.04889058321714401, -0.00013371290697250515, -0.0002964060113299638, 0.027174945920705795, -0.009697571396827698, 0.028293093666434288, 0.0374593585729599, -0.04518287256360054, -0.06050867959856987, -0.00014245744387153536, 0.057110074907541275, 0.030268797650933266, -0.013529627583920956, -0.04629375785589218, -0.012579434551298618, 0.018368467688560486, -0.009889695793390274, -0.01691138558089733, 0.03825466334819794, 0.0271073579788208, -0.1041674092411995, -0.014870252460241318, 0.028485944494605064, 0.0070266807451844215, -0.03262393921613693, 0.024559883400797844, 0.0045441146939992905, 0.012745088897645473, 0.021893462166190147, 0.014667946845293045, 0.001110888086259365, -0.06492006778717041, -0.004571379162371159, 0.02366933599114418, -0.015817731618881226, 0.05720985680818558, -0.0345175638794899, 0.018073854967951775, 0.050241053104400635, 0.03106319159269333, 0.0066062589175999165, -0.0469040647149086, -0.027500491589307785, 0.045247793197631836, -0.02852327562868595, 0.040982939302921295, -0.02894440107047558, -0.04443144053220749, -0.03902950510382652, -0.020365344360470772, -0.026738805696368217, 0.05663229525089264, -0.010026874020695686, 0.01433494221419096, 0.011053822934627533, 0.013605833984911442, -0.0018017073161900043, -0.06102275103330612, -0.03922444209456444, -0.024675380438566208, 0.05290922522544861, 0.021725371479988098, -0.01934276521205902, 0.009532574564218521, -0.03275094926357269, -0.03986525163054466, 0.03821403905749321, -0.009230101481080055, -0.04589630663394928, 0.06575308740139008, 0.02526622824370861, -0.018659353256225586, 0.008876781910657883, 0.03926151990890503, -0.05208025500178337, 0.0474589541554451, 0.0033570746891200542, 0.016553008928894997, 0.03175811842083931, 0.0395858995616436, 0.00479521369561553, -0.028426123782992363, -0.04252200201153755, -0.01386924460530281, -0.013864289969205856, 0.0007772607496008277, 0.07288770377635956]
1
768
[[-0.017321424558758736, -0.0290683601051569, 0.02144867181777954, 0.03564919903874397, 0.007519469130784273, -0.0020619011484086514, 0.01159549318253994, 0.0033334267791360617, -0.030980847775936127, 0.028360769152641296, -0.00923326425254345, -0.015223197638988495, 0.045116547495126724, 0.029102467000484467, -0.034634821116924286, -0.02428201586008072, -0.02622298151254654, -0.012027820572257042, -0.033619582653045654, -0.006393300835043192, 0.04940227046608925, -0.005081124138087034, -0.013001572340726852, 0.04863433539867401, 0.01769079640507698, 0.019589051604270935, -0.05099540203809738, 0.02014349400997162, 0.07345512509346008, -0.056142907589673996, 0.017525048926472664, -0.04323125630617142, -0.03591267392039299, -0.04471318796277046, -0.03387963026762009, 0.02250732108950615, 0.0260605551302433, 0.03198987990617752, 0.015925999730825424, 0.055788323283195496, -0.008521814830601215, 0.003774485783651471, -0.004999945871531963, -0.032853759825229645, 0.03646484762430191, 0.010934969410300255, -0.02773832529783249, -0.040138907730579376, 0.03286226838827133, -0.04289257898926735, -0.04034288600087166, -0.05297926440834999, -0.010307238437235355, 0.01675456389784813, 0.002258037682622671, -0.010667218826711178, -0.05834063142538071, 0.03491596132516861, 0.08479320257902145, -0.06158952787518501, -0.032164279371500015, -0.010000646114349365, -0.08898387849330902, 0.02972586452960968, 0.021418822929263115, -0.054490238428115845, 0.0574653334915638, -0.05757038667798042, 0.03782184422016144, -0.047682881355285645, 0.008862263523042202, -0.05072873830795288, 0.004423295613378286, -0.10649670660495758, -0.037948817014694214, -0.003030016552656889, 0.03342246636748314, 0.043445296585559845, -0.05618777126073837, 0.056365132331848145, 0.037387412041425705, 0.002760133007541299, 0.04104584828019142, -0.002229600679129362, -0.030764112249016762, 0.032726626843214035, -0.008634235709905624, 0.02173653617501259, 0.0011450621532276273, 0.04624494910240173, -0.03307458013296127, -0.07201699912548065, -0.016203274950385094, 0.0036587673239409924, -0.012880930677056313, 0.019049828872084618, 0.04802519455552101, 0.012124101631343365, 0.04760000854730606, 0.050861284136772156, 0.038192279636859894, 0.061423029750585556, -0.017844833433628082, 0.026627566665410995, -0.0229574516415596, 0.006922928616404533, -0.03528516739606857, -0.0240724328905344, -0.040312256664037704, -0.0032211754005402327, -0.012484926730394363, -0.0663076713681221, -0.007122499402612448, 0.037984441965818405, 0.0038152653723955154, -0.06272412836551666, 0.0509425513446331, -0.056290652602910995, -0.058687008917331696, -0.010993730276823044, 0.0430663600564003, 0.02154427394270897, -0.041093580424785614, -0.014876669272780418, -0.060619112104177475, 0.024312550202012062, -0.024698927998542786, 0.008390418253839016, -0.019487500190734863, 0.007395193446427584, -0.01375834085047245, 0.011960526928305626, 0.031002424657344818, -0.08624697476625443, 0.024247542023658752, 0.006527060177177191, -0.03665762394666672, 0.02803284116089344, 0.006271459627896547, 0.07319948822259903, -0.05682418495416641, -0.04574257507920265, -0.03672082722187042, 0.015206302516162395, -0.02461088076233864, -0.01586904563009739, 0.013223697431385517, -0.054297711700201035, -0.04598791524767876, -0.006337896920740604, 0.06237014755606651, -0.03651244938373566, 0.01589328609406948, 0.07579127699136734, -0.013197096064686775, 0.026848727837204933, -0.01778201386332512, 0.002971116453409195, 0.008328345604240894, 0.025022976100444794, -0.024580515921115875, 0.034560929983854294, 0.0050260028801858425, -0.02787385880947113, -0.08644828200340271, -0.03169411048293114, 0.005510836839675903, 0.04482191801071167, -0.023682281374931335, -0.0391206219792366, -0.06080467253923416, 0.027954647317528725, 0.03046696074306965, 0.015648001804947853, -0.017990151420235634, 0.04091879352927208, 0.03362458944320679, 0.037195030599832535, -0.0177246555685997, 0.054683029651641846, 0.02061222307384014, -0.025283208116889, -0.028483398258686066, 0.03470484912395477, 0.05267150327563286, -0.010124912485480309, 0.021229730919003487, 0.023600108921527863, 0.014927630312740803, -0.04385334625840187, 0.009330634027719498, 0.06787162274122238, -0.04097283259034157, -0.009420155547559261, 0.036641813814640045, -0.010596320964396, -0.03766893595457077, 0.03683076798915863, -0.028229041025042534, -0.008987233974039555, -0.05227290093898773, 0.03991328924894333, 0.020183095708489418, 0.050611864775419235, -0.004223272204399109, 0.04868282377719879, -0.03727664053440094, 0.07120431214570999, -0.005240161437541246, 0.027111586183309555, -0.05283592268824577, -0.061826545745134354, 0.015926817432045937, 0.02243269421160221, 0.05361457169055939, 0.03672531619668007, -0.027527185156941414, -0.07340686023235321, 0.04527905583381653, 0.04849943891167641, 0.04911305755376816, 0.00674306508153677, -0.04111838340759277, 0.007636277470737696, 0.027770960703492165, 0.03094053640961647, -0.055380359292030334, -0.032657623291015625, 0.018110627308487892, 0.055499594658613205, -0.023379191756248474, 0.006783255375921726, -0.022936547175049782, 0.019551491364836693, -0.03582318127155304, -0.06713026762008667, 0.027420353144407272, 0.03327900543808937, 0.005401282571256161, 0.0005863559781573713, -0.018303031101822853, 0.026252977550029755, 0.02077643573284149, 0.02444145828485489, 0.030188167467713356, -0.03149719163775444, 0.012608859688043594, -0.02100216969847679, 0.08470612019300461, -0.0031517825555056334, 0.033449966460466385, 0.013242308981716633, 0.02110837772488594, 0.014618230983614922, -0.04304170981049538, 0.02197984606027603, 0.06688559055328369, 0.02574421651661396, -0.045794527977705, 0.0373358353972435, 0.03567683696746826, 0.044516921043395996, 0.07325885444879532, 0.007987595163285732, 0.040773455053567886, -0.0027179326862096786, 0.01602841727435589, 0.030576495453715324, 0.013823426328599453, 0.008543203584849834, 0.020804863423109055, 0.08582372218370438, 0.0004137080395594239, -0.01901276409626007, 0.07436161488294601, -0.03382265940308571, 0.007069360930472612, -0.053395360708236694, 0.024815915152430534, -0.0338716134428978, -0.022816475480794907, 0.04400728642940521, -0.020293278619647026, -0.014036102220416069, -0.0034727640450000763, -0.010488650761544704, 0.008831663988530636, 0.0338919535279274, -0.010221480391919613, 0.024804800748825073, -0.004506160970777273, -0.026584165170788765, 0.028500426560640335, -0.06343217194080353, -0.024766407907009125, -0.02698618732392788, -0.04278045892715454, 0.023514093831181526, -0.06462697684764862, 0.00019009616516996175, -0.041659679263830185, -0.02747407555580139, 0.030351657420396805, 0.021620070561766624, 0.02664831466972828, -0.017507608979940414, 0.04152553528547287, -0.04807824641466141, -0.0418708473443985, -0.031889189034700394, -0.04912397265434265, -0.045796893537044525, -0.047752924263477325, 0.037040527909994125, 0.03883790597319603, -0.010969972237944603, 0.052010659128427505, -0.0028239635284990072, 0.010785464197397232, -0.0499294176697731, 0.06617559492588043, 0.01020990964025259, -0.0059270779602229595, -0.008470469154417515, 0.020733419805765152, 0.003880891017615795, -0.03046511486172676, -0.038246043026447296, -0.023029915988445282, 0.08330415189266205, 0.0814347043633461, 0.019334042444825172, 0.01608927547931671, 0.0231016892939806, -0.059429723769426346, -0.017135992646217346, -0.04106093570590019, -0.012111494317650795, -0.007100872695446014, -0.047069329768419266, -0.03065279684960842, -0.015734704211354256, -0.012285885401070118, -0.01509094052016735, -0.006573914550244808, -0.01767726242542267, 0.03516869619488716, 0.03823452070355415, 0.047458309680223465, 0.04796659201383591, 0.0036093818489462137, 0.0051482380367815495, 0.09279636293649673, -0.009012808091938496, -0.029566612094640732, -0.07162266224622726, -0.04701884463429451, 0.018646517768502235, -0.012380776926875114, 0.01323506236076355, -0.05949578434228897, 0.04261186718940735, -0.0020745713263750076, -0.0008975438540801406, 0.027776023373007774, -0.022997431457042694, 0.008152569644153118, -0.003328507300466299, 0.02153967134654522, -0.0015762682305648923, -0.060422927141189575, 0.013903005048632622, -0.020790306851267815, 0.03715454414486885, -0.04409933462738991, -0.027633583173155785, -0.017945939674973488, 0.013620913028717041, 0.002300640568137169, -0.01987757720053196, -0.042235616594552994, 0.010321836918592453, -0.06352412700653076, -0.03793075680732727, -0.009916971437633038, 0.009865921922028065, 0.013699888251721859, 0.07334297895431519, 0.028970519080758095, -0.008001064881682396, 0.037864528596401215, -0.0046511320397257805, 0.05371379479765892, 0.04236424341797829, -0.005195035599172115, 0.045150261372327805, -0.024089565500617027, 0.02996688149869442, 0.01702144183218479, -0.024357546120882034, -0.02874450944364071, -0.07051112502813339, -0.043213099241256714, 0.015171256847679615, -0.013019931502640247, 0.007322291377931833, 0.032377343624830246, -0.0761328786611557, -0.006147494073957205, -0.009803448803722858, 0.026521947234869003, 0.02876337245106697, -0.03936163708567619, 0.04309429973363876, -0.02219192497432232, 0.028185781091451645, -0.020020579919219017, 0.007225584704428911, -0.039547450840473175, -0.038863398134708405, 0.0023863662499934435, 0.03486962988972664, 0.009217005223035812, 0.04753095656633377, 0.07488342374563217, 0.021021869033575058, -0.019261261448264122, 0.05075135827064514, 0.05234203487634659, 0.042802054435014725, -0.058917783200740814, 0.009169568307697773, -0.0114184794947505, -0.024603283032774925, -0.020432887598872185, -0.03730656951665878, -0.011245569214224815, 0.0518949069082737, -0.01777232438325882, -0.020640768110752106, 0.015455231070518494, -0.009173426777124405, -0.019948413595557213, -0.07887320220470428, 0.010364311747252941, 0.023990197107195854, -0.02183448150753975, -0.016735829412937164, 0.04933293163776398, 0.010621244087815285, 0.053837575018405914, 0.019890988245606422, -0.02331245131790638, -0.042438603937625885, 0.0376339852809906, 0.011187724769115448, -0.0675845816731453, -0.04671342670917511, -0.05316471308469772, 0.03220190852880478, 0.02316640503704548, -0.010591902770102024, -0.08743032068014145, 0.017634905874729156, 0.0520271360874176, -0.0533728264272213, 0.06312556564807892, 0.03298362344503403, 0.04579544439911842, 0.04387025162577629, -0.0067642005160450935, -0.0012411015341058373, -0.0220523402094841, -0.015545527450740337, -0.004620107356458902, 0.04921107366681099, -0.01686077192425728, -0.02403855137526989, -0.036483075469732285, 0.034233104437589645, -0.0004134571354370564, 0.03333095461130142, 0.023780155926942825, -0.0215507410466671, -0.039365991950035095, 0.007088224403560162, 0.021579977124929428, -0.04926331341266632, 0.015588230453431606, 0.0431477315723896, 0.01689556986093521, -0.02139599435031414, -0.025761902332305908, -0.005895566660910845, 0.009362280368804932, 0.06592248380184174, -0.024581845849752426, -0.033219024538993835, -0.03883035480976105, 0.022612683475017548, 0.004720636177808046, -0.04392965883016586, -0.10522866994142532, 0.03612978011369705, -0.007931091822683811, -0.02656685747206211, 0.0595211498439312, 0.02757774479687214, 0.023897986859083176, 0.07394728809595108, 0.0013310438953340054, 0.015569751150906086, -0.03303242474794388, 0.04341736435890198, -0.03539205342531204, -0.036442358046770096, 0.011251267977058887, -0.05132952705025673, -0.01252642460167408, -0.040165532380342484, -0.044165316969156265, -0.0377374067902565, 0.01601918786764145, 0.033709876239299774, -0.029712719842791557, 0.01371624507009983, 0.012021202594041824, 0.009144358336925507, -0.0012294809566810727, -0.054170094430446625, -0.012410640716552734, -0.03506080433726311, -0.059657350182533264, -0.04365936294198036, 0.03791392594575882, -0.005035681184381247, 0.023932164534926414, 0.0034728029277175665, 0.02458377555012703, 0.013101131655275822, -0.019378934055566788, -0.017877968028187752, 0.032196931540966034, 0.02618904784321785, -0.044426120817661285, -0.04397771507501602, -0.04404795542359352, 0.012077024206519127, 0.0009185854578390718, -0.057090867310762405, 0.03635062649846077, 0.02196238934993744, -0.021085225045681, -0.02153061516582966, 0.013250293210148811, 0.00024128140648826957, -0.046743229031562805, -0.05875478312373161, 0.0014907746808603406, 0.01107202097773552, 0.0355990007519722, -0.044903725385665894, -0.00744067644700408, 0.039901454001665115, 0.054436638951301575, 0.03989597037434578, 0.020156705752015114, -0.0024347302969545126, 0.05408094823360443, -0.03394201770424843, 0.01124644186347723, -0.08133042603731155, 0.012479742057621479, -0.014537785202264786, 0.03361954540014267, -0.016587598249316216, -0.0019532712176442146, -0.04333049803972244, 0.03773229196667671, -0.03504340723156929, -0.02680058404803276, 0.009273001924157143, 0.020638667047023773, -0.03398161754012108, 0.04324514791369438, -0.032252904027700424, 0.012472523376345634, -0.04653674736618996, 0.021308109164237976, -0.03609234094619751, -0.007463605143129826, 0.002886619418859482, -0.010017814114689827, -0.05408637970685959, -0.03729449212551117, -0.018613724038004875, -0.0747760459780693, 0.014677428640425205, 0.04456208646297455, -0.0037362310104072094, 0.01652003638446331, -0.02049092948436737, -0.009004614315927029, 0.01310324389487505, -0.04954605549573898, -0.024893861263990402, -0.054506320506334305, -0.02564423345029354, 0.0038152928464114666, 0.02247799001634121, 0.03442836552858353, -0.04935676231980324, -0.04851234331727028, 0.06551472097635269, 0.04748581722378731, 0.012762893922626972, 0.012478840537369251, 0.03356518596410751, 0.029689347371459007, 0.03162391856312752, 0.0009990492835640907, 0.015171544626355171, -0.039270542562007904, 0.019663330167531967, -0.0032285084016621113, 0.0005036802613176405, 0.005587312392890453, -0.029122715815901756, -0.04797721281647682, -0.029384853318333626, 0.09772323071956635, 0.04215091094374657, 0.036107707768678665, -0.0059586623683571815, -0.06001514196395874, 0.04123353213071823, 0.02582753449678421, -0.033240944147109985, 0.019794894382357597, 0.00762584013864398, -0.04011582210659981, 0.06632877886295319, 0.025751780718564987, 0.0337512381374836, 0.022395649924874306, 0.014725248329341412, -0.026703786104917526, 0.03363873064517975, -0.04476390779018402, -0.0031432872638106346, 0.022113017737865448, -0.04401383548974991, 0.0010328451171517372, -0.03826238587498665, 0.049495622515678406, -0.03614891692996025, 0.04957938194274902, 0.050102073699235916, -9.874166426016018e-05, 0.011222000233829021, -0.028685754165053368, -0.010983431711792946, 0.031677842140197754, -0.010753041133284569, 0.06186556816101074, -0.0074374014511704445, -0.07745931297540665, 0.03900652006268501, 0.03108547255396843, -0.06512308120727539, 0.031722452491521835, 0.008549943566322327, 0.012647946365177631, 0.03415451943874359, 0.04522695019841194, -0.05784319341182709, -0.01139136590063572, -0.014637447893619537, 0.013122860342264175, -0.03127758577466011, -0.02670898847281933, 0.051023080945014954, 0.010094310157001019, -0.009224277921020985, 0.03171323239803314, -0.007032867521047592, 0.02815721184015274, 0.03412032499909401, -0.04599647969007492, -0.05517728999257088, 0.006577468477189541, 0.050992149859666824, 0.03993885591626167, -0.009872814640402794, -0.04027444124221802, -0.006794418208301067, 0.016102338209748268, -0.01627134159207344, -0.03268791362643242, 0.061120036989450455, 0.03230159357190132, -0.11263767629861832, 0.0009169777040369809, 0.036213599145412445, 0.0032208524644374847, -0.035493154078722, 0.01669081673026085, 0.0012780106626451015, 0.007710043806582689, 0.015535444021224976, 0.015169922262430191, 0.0034496274311095476, -0.07034318149089813, -0.009966891258955002, 0.023845499381422997, -0.0037595026660710573, 0.04338093847036362, -0.028243770822882652, 0.013600415550172329, 0.06672463566064835, 0.025279821828007698, 0.012037968263030052, -0.05715629830956459, -0.030268756672739983, 0.03982356935739517, -0.02968951314687729, 0.043989308178424835, -0.03443540632724762, -0.042146142572164536, -0.051622238010168076, -0.01609404757618904, -0.01765049248933792, 0.06530895829200745, -0.006290975026786327, 0.016796844080090523, 0.01698577031493187, 0.00958422850817442, 0.00293816183693707, -0.05678679049015045, -0.03955871984362602, -0.03187083080410957, 0.05141907185316086, 0.019684238359332085, -0.024625755846500397, 0.018303697928786278, -0.03491023927927017, -0.04864603281021118, 0.03176124766469002, -0.011285300366580486, -0.028160076588392258, 0.07350596785545349, 0.02604042924940586, -0.021007336676120758, 0.00442914292216301, 0.034913986921310425, -0.057340387254953384, 0.03061915747821331, 0.004473674576729536, 0.011480627581477165, 0.025294611230492592, 0.03858784958720207, 0.02081691473722458, -0.02084927447140217, -0.034105028957128525, -0.018360333517193794, -0.003101494861766696, 0.0009713417966850102, 0.07005392760038376]]
In [ ]:
from langchain.embeddings.huggingface import DEFAULT_QUERY_INSTRUCTION, DEFAULT_EMBED_INSTRUCTION
In [ ]:
print(DEFAULT_QUERY_INSTRUCTION)
print(DEFAULT_EMBED_INSTRUCTION)

Preparing Documents

In [ ]:
%%bash
wget --recursive --no-parent --accept=.html --directory-prefix _morning --no-clobber http://ailingmusheng.ren/7/2022djth/2022-7_0008.html
In [ ]:
import os
import shutil

# 定义一个函数来递归遍历目录树,找到名为 .ipynb_checkpoints 的子目录并删除它们。
def remove_checkpoints(dir_path):
    for root, dirs, files in os.walk(dir_path):
        for name in dirs:
            if name == '.ipynb_checkpoints':
                shutil.rmtree(os.path.join(root, name))

# 调用函数来删除目录下所有名为 .ipynb_checkpoints 的子目录。
remove_checkpoints('_morning')
In [ ]:
import os

def delete_ds_store_files(path):
    for root, dirs, files in os.walk(path):
        for name in files:
            if name == '.DS_Store':
                os.remove(os.path.join(root, name))

delete_ds_store_files('_morning')
In [ ]:
import os
import shutil
from pathlib import Path

# 1. 用户设定目录路径。
directory_path = '_morning'

# 2. 获取目录及其子目录下的所有文件,并按照扩展名分类。
file_extension_map = {}
for root, dirs, files in os.walk(directory_path):
    for file_name in files:
        file_path = os.path.join(root, file_name)
        file_extension = Path(file_name).suffix.lower()
        if file_extension not in file_extension_map:
            file_extension_map[file_extension] = []
        file_extension_map[file_extension].append(file_path)

# 3. 创建新目录,并将同样扩展名的文件移动到该目录下。
for file_extension, file_list in file_extension_map.items():
    new_directory_path = os.path.join(directory_path, file_extension[1:])
    for file_path in file_list:
        new_file_path = os.path.join(new_directory_path, os.path.relpath(file_path, directory_path))
        os.makedirs(os.path.dirname(new_file_path), exist_ok=True) # 创建目录,存在则不创建。
        shutil.move(file_path, new_file_path)
In [ ]:
%%bash
pip install chardet
Successfully installed chardet-5.1.0
In [ ]:
import chardet

# 读取文件内容
with open('_morning/html/ailingmusheng.ren/7/2022djth/2022-7_0008.html', 'rb') as f:
    content = f.read()

# 检测文件内容的编码类型
result = chardet.detect(content)

# 输出编码类型和可信度
print('编码类型:', result['encoding'])
print('可信度:', result['confidence'])
编码类型: utf-8
可信度: 0.99
In [ ]:
import os
import shutil

def remove_xml_lines(path):
    for root, dirs, files in os.walk(path):
        for file in files:
            file_path = os.path.join(root, file)
            with open(file_path) as f:
                lines = f.readlines()
            with open(file_path, 'w') as f:
                for line in lines:
                    if line != "<?xml version='1.0' encoding='utf-8'?>\n":
                        f.write(line)

remove_xml_lines('_morning/htm')
remove_xml_lines('_morning/html')
In [ ]:
from langchain.document_loaders import DirectoryLoader, BSHTMLLoader
loader = DirectoryLoader('_morning/htm', loader_cls=BSHTMLLoader)
raw_documents = loader.load()
In [ ]:
import re
for raw_document in raw_documents:
    raw_document.page_content = re.sub(r'\n+', '\n', raw_document.page_content.replace('。', '。\n'))
In [ ]:
# from langchain.document_loaders import DirectoryLoader, BSHTMLLoader
# loader = DirectoryLoader('_morning/html', loader_cls=BSHTMLLoader)
# raw_documents = loader.load()
In [ ]:
from langchain.text_splitter import RecursiveCharacterTextSplitter

text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=512,
    chunk_overlap=64,
)
documents = text_splitter.split_documents(raw_documents)
In [ ]:
from langchain.docstore.document import Document
# import pdb; pdb.set_trace()
text_splitter.split_documents([Document(page_content='第四周历代志、以斯拉记、尼希米记、以斯帖记结晶读经第四周借着神的申言者神圣的鼓励,恢复神殿的建造周四、周五叁撒迦利亚书启示,灯台的七灯(四2,启四5)是神的七灵,七倍加强的灵(一4),就是耶和华的七眼(亚四10),也是救赎之羔羊的七眼(启五6),以及建造之石头的七眼(亚三9),为着三一神完满的彰显和神殿的重建:一在撒迦利亚三章九节里,这块安置在约书亚面前的石头,预表基督是神建造的石头(诗一一八22,太二一42);耶和华要雕刻这石头,指明基督在十字架上受死时,乃是被神雕刻、剪除;耶和华要在一日之间除掉那地的罪孽,指明神在其上作工的基督,要在一日之间,就是在祂钉十字架之日,除掉以色列地的罪;借着祂在十字架上的死,神的羔羊基督除去了世人的罪(彼前二24,约一29):1石头、耶和华和羔羊乃是一;基督是救赎的羔羊和建造的石头,也是耶和华;基督乃是羔羊石头—羔羊为着救赎,石头为着建造—启五6,亚三9。2在神的建造里,基督是基石,托住神的建造;是房角石,将祂身体上外邦和犹太的肢体联络在一起;也是恩典的顶石,完成神建造中的一切—赛二八16,林前三11,弗二20,彼前二6,亚四7。3神的羔羊基督是那有七眼之建造的石头,这启示基督的七眼乃是为着神的建造—约一29,亚三9,启五6。4基督是建造的石头,有七眼,就是七灵,为要将祂自己灌注到我们里面,好把我们变化为宝贵的材料,为着神的建造;当主注视我们,祂的七眼就将祂自己灌注到我们里面—亚三9,林前三12,启三1,五6。二为着完成神的建造,七倍加强的灵是基督这救赎之羔羊和建造之石头的眼睛,鉴察并搜寻我们,并用基督的素质、丰富和负担,注入并灌注到我们里面,为着神的建造—亚三9,四7,启一14,五6:1羔羊的七眼,将基督这法理的救赎者注入我们里面;石头的七眼,将基督这生机的拯救者注入我们里面,目的是为着神在地上经纶的行动,要借着祂法理的救赎,凭着祂生机的拯救,达到祂建造的目标—约一29,徒四11~12,罗五10。2在我们里面有两盏灯—神七倍加强的灵在我们的灵里(箴二十27,启四5,林前六17);我们要被变化,就必须在祷告中向主完全敞开,让主的灯同着七盏火灯搜寻我们魂里的每一个房间,照耀并光照我们内里的各部分,用生命供应各部分。3经历最大变化的人,乃是向主完全敞开的人;借着七倍加强的灵在寻求基督之信徒里的运行,他们就得着加强,成为得胜者,以建造基督的身体,终极完成新耶路撒冷。三基督这位末后的亚当,在复活里成了赐生命的灵(十五45下,约六63上,林后三6下),祂也是七倍加强的灵;这灵就是生命的灵(罗八2);因此,七灵的功用乃是将神圣的生命分赐到神的子民里面,为着建造神永远的居所新耶路撒冷。四七倍加强的灵乃是七盏火灯,焚烧、光照、暴露、搜寻、审判、洁净并炼净我们,好产生金灯台,完成神新约的经纶—启四5,一2、4、9~12、20。第四周周五晨兴喂养箴二十27人的灵是耶和华的灯,鉴察人的深处。启四5……有七盏火灯在宝座前点着,这七灯就是神的七灵。谁经历最大量的变化?就是向主完全敞开的人。……“主,我向你完全敞开。我要一直向你敞开。我的全人—我的心、我的心思、我的意志和我的情感—是敞开的。求你一直照耀,彻底鉴察我,光照并点活我。我愿完全接受你的光照。”这样,光会渗透每一部分,同时生命会供应给你。泥土所造的人要变化成为基督的形像。随着金这样成形在你里面,就会有七灵照耀并彰显神。愿我们众人向祂敞开,接受祂的光照,并让祂的生命供应我们。然后我们就会变化,并有基督的形像。我们蒙里面的灯光照,就会实际地在我们的地方上成为金灯台,彰显三一神。这样,祂就要得着祂的见证(李常受文集一九七九年第一册,五○七至五○八页)。信息选读这包罗万有、超绝、奇妙、奥秘、美妙的一位,乃是神行政的执行者。……因为祂有资格,因为祂配〔参启五4~6〕,所以七印交给了祂。这一位有资格揭开七印,执行神的经纶。祂执行神经纶的方式,乃是凭着七灵作祂的眼睛。……基督是神经纶的焦点执行者,但祂需要七灵作祂的眼睛,来执行神的经纶。今天七灵在地上焚烧,为着执行神的行政。……焚烧的火焰执行神的经纶,目的是要产生金灯台,众召会。焚烧含示审判、洁净、炼净、产生。……我不相信在世界或召会里似乎令人失望的光景。我相信焚烧之七灵的火焰,支配并指引世界,也审判、洁净并炼净召会,要产生一个纯金的灯台。我们在这里尽量给主机会和入口,来审判我们、洁净我们并炼净我们,好产生一个纯金的灯台。我们向着神七灵的焚烧大大敞开。我们都需要祷告:“亲爱的神圣火焰,来吧!来审判!来洁净!来炼净,使你能产生金灯台。”……因着祂的怜悯,我们向祂敞开。我们每天、每早、每晚都需要祷告:“主,来吧;我们向你敞开!我们全人的每一通道都向你敞开。”……我能作见证,我几乎天天祷告:“主,光照我;主,搜寻我里面,并且暴露我。我喜欢被你光照,并且在你的光中被暴露。”……我们都必须祷告:“主,我们是敞开的。来照耀在我们身上,从我们里面照耀,光照我们全人的每一通道、每一角落。我喜欢被暴露、被清理、被炼净。”这样,主就有路产生纯金的灯台。出自永远者和救赎者的七灵,乃是在神宝座前点着的七盏火灯,在宇宙中执行神的经纶;也是被杀之羔羊的七眼,搜寻并灌注众召会(四5,五6下)。七灵的双重使命乃是执行神的行政,以及搜寻并灌注众召会。七灵搜寻出我们的罪恶,并以基督的丰富灌注我们。当人和你说话的时候,他的两眼同时把他的负担灌注到你里面。照样,神的七灵作为羔羊的眼睛,也把这位奇妙者的负担和素质灌注到我们里面(李常受文集一九八四年第三册,四四八至四五二页)。参读:生命信息,第六十八至七十章;神新约的经纶,第二十三章。确定的话定住的光启示:七灵乃是在神宝座前点着的七盏火灯。经历:七灯来焚烧、光照、暴露、搜寻、审判、洁净并炼净我们。应用:借长时祷告向主完全敞开。一句话:“亲爱的神圣火焰,来吧!来审判!来洁净!来炼净!”', metadata={})])
In [ ]:
list('这是一个测试文档。')
Out[ ]:
['这', '是', '一', '个', '测', '试', '文', '档', '。']

Embedding Documents

from langchain.embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings()
In [ ]:
from langchain.embeddings import HuggingFaceInstructEmbeddings
In [ ]:
hfi_embeddings = HuggingFaceInstructEmbeddings(model_name='hkunlp/instructor-large')
load INSTRUCTOR_Transformer
max_seq_length  512

tqdm 是一个 Python 库,用于在循环中添加进度条。它可以用于任何可迭代的对象,如列表、元组、字典、文件等。它提供了一个简单的 API ,可以轻松地将进度条添加到循环中。以下是一个简单的示例代码:

In [ ]:
from tqdm.autonotebook import trange

for i in trange(1000000):
    pass
In [ ]:
from tqdm import tqdm

for i in tqdm(range(1000000)):
    pass
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1000000/1000000 [00:00<00:00, 4955597.80it/s]

在这个例子中,我们使用了 tqdm 库来添加一个进度条到循环中。我们使用了内置的 range() 函数来生成一个包含 1000000 个元素的迭代器,并将其传递给 tqdm() 函数。然后,我们使用了一个简单的循环来遍历这个迭代器,并在每次迭代时调用 tqdm.update() 方法来更新进度条。


Loading Faiss Indexer from Disk

In [ ]:
import os, pickle
In [ ]:
if os.path.exists(os.path.expanduser('~/vectorstore_morning.pkl')):
    # load vectorstore
    with open(os.path.expanduser('~/vectorstore_morning.pkl'), 'rb') as f:
        vectorstore = pickle.load(f)

Embedding and Indexing

from langchain.vectorstores.faiss import FAISS
vectorstore = FAISS.from_documents(documents, embeddings)
In [ ]:
from langchain.vectorstores.faiss import FAISS
In [ ]:
if not os.path.exists(os.path.expanduser('~/vectorstore_morning.pkl')):
    vectorstore = FAISS.from_documents(documents, hfi_embeddings)

Saving Faiss Indexer to Disk

In [ ]:
if not os.path.exists(os.path.expanduser('~/vectorstore_morning.pkl')):
    # save vectorstore
    with open(os.path.expanduser('~/vectorstore_morning.pkl'), 'wb') as f:
        pickle.dump(vectorstore, f)
In [ ]:
%%bash
ls -lah ~/vectorstore_morning.pkl
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
	- Avoid using `tokenizers` before the fork if possible
	- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
-rw-r--r--  1 saintway  staff   1.3G Apr 17 00:47 /Users/saintway/vectorstore_morning.pkl

Similarity Searching

In [ ]:
question = '你知道什么?'
In [ ]:
# get context related to the question from the embedding model
vectorstore.similarity_search(question, 30)
Out[ ]:
[Document(page_content='神在人里之行动的五个步骤', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='第十篇\n历代志、以斯拉记、尼希米记、以斯帖记结晶读经\n第十篇\u3000以斯拉记和尼希米记这两卷恢复的书中心并重要的点—主恢复中正确并适当的领导\n调速 \u3000\n本篇信息,我们来到另一个结晶,题目是“以斯拉记和尼希米记这两卷恢复的书中心并重要的点—主恢复中正确并适当的领导”。许多人可能对以斯拉记和尼希米记有这样的结晶,感到意外。相信很少有人能读出这两卷书中心并重要的点,是主恢复中正确并适当的领导。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'}),
 Document(page_content='因为这爱是在基督里、同着基督、借着基督并为着基督的。”神在人里之行动的五个步骤,就是这“慈绳”(人的绳);每一步骤都与基督的人性有关。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='经历:属灵人乃是一个受他的灵管治并支配的人。\n应用:我们需要操练灵,全心转向主。\n一句话:基督乃是神经纶的中心与普及。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_6.htm', 'title': '第一周'}),
 Document(page_content='以赛亚为什么会得到这一个结论?又怎么根据这一个结论,而有了这一个说法?如果你把整卷以赛亚书都读过,你就能读出那一个原因。那是因为神在以色列人中间,在以色列人身上,作了许许多多的事,但神却把自己藏在一边,藏在以色列人的旁边,藏在以色列人的背后。不错,祂是一直在那里作事,但另一面祂却一直把自己隐藏起来。一大堆的事都是祂作的,但以色列人却看不出来那一位作这些事者到底是谁。所以当申言者以赛亚发现了这件事,他就在那里说,“……你实在是自隐的神。”', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_1.htm', 'title': '第十二周'}),
 Document(page_content='因着己是最大的仇敌,所以我们需要经历神话语的杀死能力。当我们祷读时,我们一面得着滋养,一面某些元素就被杀死。也许你受到疑惑、忌恨、嫉妒、骄傲以及自私的困扰。你知道这些东西能借着祷读主话而杀死么?我们越接受主的话连同其杀死的能力,我们的骄傲以及里面一切消极的元素就越被治死。借着祷读,里面的对头就被除灭。我们祷读主话一段时间后,就会发觉攻击我们的对头消失了。就着非常实际的意义说,我们的对头被接受到我们里面的话杀死了。\n在以弗所五章,话是为着滋养,使新妇美丽。但在六章,话是为着杀死,使召会能作团体的战士,从事属灵的争战(以弗所书生命读经,九八一、九八八、九九○页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_5.htm', 'title': '第一周'}),
 Document(page_content='第九篇\n历代志、以斯拉记、尼希米记、以斯帖记结晶读经\n第九篇\u3000建造与争战—为着召会的建造,需要从事属灵的争战\n调速 \u3000\n本篇信息的篇题是“建造与争战—为着召会的建造,需要从事属灵的争战”。这信息是直接向着基督团体的身体,然后间接向着基督身体上所有肢体说的。属灵的争战乃是基督身体的事,我们必须在身体里争战。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_ts.htm', 'title': '第九篇'}),
 Document(page_content='圣经的最后两章讲到这个宇宙的建造,就是神性与人性的调和。我们可以说,那就是神在已过的永远里渴望得着的。在将来的永远,祂要得着这样一个相互的住处。盼望我们众人能对建造有一个新鲜、更新的异象。遗憾地说,今天在基督徒中间,即便是热心的基督徒,也少有人看见并在乎这件事。但我要问弟兄姊妹:我们在这里是为着什么?我们在这里有什么负担?我们在这里是为着什么而活?我们乃是为着神殿的建造。我们为此被预定、蒙救赎、得重生,我们也为此正在被变化,好成为石头来为着这个建造。所以我们今天要实行召会生活,好在这个时代完成建造的工作。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/4_ts.htm', 'title': '第四篇'}),
 Document(page_content='确定的话 定住的光\n启示:主的生命就是人的光。\n经历:正确的教训总是释放生命的光。\n应用:借着传福音和牧养把人带到神圣的光中。\n一句话:出黑暗并进入祂奇妙之光。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/5_h_4.htm', 'title': '第五周'}),
 Document(page_content='告诉我不该祷告。相反的,你嘱咐我祷告。因此,主,我现在祷告,求你表白。”……这个比喻的意义很深奥,我们都需要认识这里所启示的神(路加福音生命读经,四○二至四○四页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_5.htm', 'title': '第十二周'}),
 Document(page_content='确定的话 定住的光\n启示:“耶和华”的意思是“我是那我是”。\n经历:今天在主的恢复里,我们乃是在应验的阶段。\n应用:当你遭遇试验、试炼和难处时,倚靠耶和华神。\n一句话:你们要称谢耶和华,呼求祂的名。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_2.htm', 'title': '第二周'}),
 Document(page_content='当反对我们的人逼迫我们的时候,我们的神似乎是不义的,因为祂允许祂的儿女遭受不义的逼迫。比方,施浸者约翰被斩,彼得殉道,保罗下监,约翰被放逐。历世历代以来,千千万万诚实、忠信跟从人救主的人都遭受过不义的逼迫,甚至今天我们仍遭受不义的错待。我们的神似乎不公平,因为祂不来审判并表白。\n活神、公义的神在哪里?祂为什么容忍这种光景?祂为什么不审判那些逼迫我们的人?因着这种光景,人救主在路加十八章一至八节用一个不义的审判官,来表征那似乎不为祂受逼迫的子民作些什么的神。……从这比喻我们要学习作个烦扰的寡妇, 一个恒切向神祷告的人(路加福音生命读经,四○一至四○二页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_5.htm', 'title': '第十二周'}),
 Document(page_content='当神对某一件事的态度改变时,祂就有一个时代的行动。……神最重要的时代行动是在启示录十二章。祂要结束这个时代,带进国度时代。祂的定旨不是笼统和一般的。祂怎样才能结束这个时代,带进另一个时代?祂必须得着祂时代的凭借(译自《圣洁没有瑕疵》英文版附录)。\n信息选读\n男孩子的被提结束召会时代并引进国度时代。男孩子使神能有所行动。……我们绝不该忘记,神是能被限制的。在祂一切的行动中,祂等候人。神在天上的捆绑是基于我们在地上的捆绑;神在天上的释放是基于我们在地上的释放。每一件事都在于召会。\n作得胜者主要不是为着逃避大灾难。我们需要看见被提对主的价值,不是对我们的价值。\n在所有时代的行动中,男孩子是最大的,因为这除去人的能力和魔鬼的能力,并带进国度。我们活在这时代是最享特权的,我们能为神作得最多。光要使我们看见道路,而力量和能力要使我们能行走这道路。现今要被神使用,就必须付极大的代价。\n神的心意是要受造之物来对付堕落的受造之物。照着祂的定旨,全召会都该对付撒但;然而,召会堕落了……。神的定旨得以在得胜者身上成就,是因为他们与祂同工。……神总是得着一班得胜者,来进行时代的行动。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/7_h_1.htm', 'title': '第七周'}),
 Document(page_content='带领的人乃是奴仆\n在神子民中间的领导这件事,非常重大。神对领导的观念,与我们天然的观念迥然不同。我们需要看三处经文:马太二十三章八至十节,希伯来十三章七节和十七节,以及马太二十章二十五至二十八节。乍看之下,马太二十三章和希伯来十三章这两处经文似乎互相矛盾。在马太二十三章八至十节,主说,“但你们不要受拉比的称呼,因为只有一位是你们的夫子,你们都是弟兄;也不要称地上的人为父,因为只有一位是你们的父,就是那天上的;也不要受师尊的称呼,因为只有一位是你们的师尊,就是基督。”主的意思是,没有人是你们的师尊,只有基督是,甚至不该有师尊的称呼,或父的称呼,因为只有一位领头人,就是基督。然而,希伯来十三章七节说,“要记念那些带领你们……的人。”十七节说,“你们要信从那些带领你们的,且要服从。”那么,到底有没有带领的人呢?', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'}),
 Document(page_content='信息选读\n联结的信使得胜者有资格在基督凯旋回来时与祂相见,这是对得胜者的神圣要求。这是根据路加十八章八节。……今天,整个世界都是不信的。今天不仅在外邦人、异教徒中间,甚至在犹太人、天主教徒、更正教徒和灵恩派的人中间,何处找得到信心?如果主今天来了,祂在哪里找得到信心?地上几乎没有一个人是相信的。但因着祂的怜悯,在已过年间,借着倪弟兄的带领,我们被带进一种光景,学习在凡事上不信靠我们自己,只相信我们的神是一切。\n我盼望主回来时,祂能找到你我都是相信的人,是一直信靠祂,不信靠自己,对自己没有确信的人。我们的确信完全在祂身上。这是联结的信。这信是得胜者的资格,这是神圣的要求,使你我作为得胜者,可以在基督凯旋回来时与祂相见。……最终,主会找到一些人,就是少数的得胜者,他们在主回来时,是凭联结的信而活。……基督盼望找着我们作祂隐藏的得胜者。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_6.htm', 'title': '第十二周'}),
 Document(page_content=',在那里进攻,要把基督所建造的召会,拖到死亡里去。但你在那里也看见,召会有权柄,有诸天之国的钥匙,能在那里捆绑天上所捆绑的,释放天上所释放的。召会是有权柄的,召会也是争战而得胜的(李常受文集一九五七年第二册,八七至八八页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_h_3.htm', 'title': '第九周'}),
 Document(page_content='信息选读\n这男孩子并不是个人的,乃是团体的。……这团体的男孩子包括作他元首、中心、实际、生命和本质的主耶稣。……诗篇二篇八至九节预言主耶稣,神的受膏者,要用铁杖辖管列国;启示录二章二十六至二十七节说,召会中的得胜者要用铁杖辖管列国;而十二章五节告诉我们,男孩子要用铁杖辖管万国。因此,……主耶稣自己和祂的得胜者都要用铁杖辖管万国。所以,十二章五节的男孩子,包括主耶稣和召会中的得胜者。此外,二十章四节说,基督和复活的得胜者要作王掌权一千年。因此,启示录十二章的男孩子,既不是指个人的主耶稣,也不是指与祂分开的得胜者,乃是指主耶稣连同得胜者。基督自己是头一位得胜者(三21)。祂这位领头的得胜者,乃是众得胜者的元首、中心、实际、生命和本质。在地上属神的人中间,有一部分是刚强的,包括主耶稣和得胜者。因此,男孩子是由主耶稣和祂的得胜者组成的。\n主耶稣是男孩子,却从女人而生。……这件事属灵的意义是说,主耶稣是从信靠神的源头而生。……男孩子的源头是女人,不是男人。……男孩子是信靠神、倚靠神之女人的后裔。主耶稣就是从这样的源头而出的后裔。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/7_h_2.htm', 'title': '第七周'}),
 Document(page_content='信息选读\n撒迦利亚四章十二节说到……枝子“流出金”。这里的“金”是指油。油和金乃是一。油是指那灵,那灵乃是神。不仅如此,按预表,金表征神。那充满油碗的金乃是那灵,那灵就是神;神是由金所表征的。我们将这事应用到今天的经历时,就看见从我们里面流出来的那灵就是神,而神就是金。因此,我们将基督供应给别人,用油供应他们的时候,实际上就是用神供应他们。神从我们流出来,流到他们里面。我们都该是橄榄树,从我们自己里面流出神来,流到别人里面(撒迦利亚书生命读经,四一三至四一四页)。\n在出埃及记,灯台是基督作神的具体化身;在新约末了,灯台是众召会作三一神具体化身的繁增。……这灯台只有两个基本元素—金和油。金是具体的形状,油是燃烧的元素。当这二者放在一起,就有灯台照耀,在神的三一里彰显祂,有父的性情和素质、子的形像和样子以及灵的彰显。……撒迦利亚四章十二节告诉我们,灯台的油乃是金油。……召会作为灯台,乃是三一神扎实的具体化身,有七倍的灵作为油。事实上,油的素质就是金的元素。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/4_h_6.htm', 'title': '第四周'}),
 Document(page_content='自隐的神默默却强有力地在我们里面运行\n自隐的神默默却强有力地在我们里面运行(腓二13)。这是在我们与主的关系中,一件非常个人的事。“默默”指明不只是隐藏的,更是安静的,甚至是沉默的。我们通常不会将“安静”和“沉默”这二辞,联于有活力的行动。但神的确是默默却强有力地在我们里面运行。神之所以能强有力地运行,指明我们所是的某些部分被主征服、对付、变化了。主在这个内里的争战中征服了我们,祂正在强有力地摸着我们内里核心的部分。这也就是祂对我们美妙的照顾。祂知道我们愿意作敞开的器皿。当我们愿意对祂说,“主啊,我不知道自己的光景如何,也不知道自己需要什么;但是你知道。无论你想要到哪里,摸着什么,求你自己来作。”祂就会进到我们的深处,以一种隐藏的方式来对付那些抵触祂的事物,并以包罗万有的基督来顶替。你自己可能不会察觉,但别人会感觉得到。最近我听见一位中年姊妹在聚会中简短的说话,我里面满了感谢和敬拜。她自己也许没有察觉,但基督从她照耀出来了。隐藏的神在她里面作工,使基督在她里面长大并扩展。这位隐藏的神也正在我们每一位里面默默地作工。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_ts.htm', 'title': '第十二篇'}),
 Document(page_content='信息选读\n当〔主的〕恢复是圣别的,我们就会看见主的祝福。在一些地方祝福受到拦阻,原因乃是因着背景而引起的混杂。我们曾多次被定罪,说我们不邀请别人来我们的聚会中说话。我们不是骄傲,但我们的确谨慎。……已过我们曾经试过,却只引起麻烦;所以我们学了功课。这不是说我们狭窄,乃是说,这个恢复是如此纯净、单纯、圣别。我们的确需要以斯拉来作洁净的工作。主不喜欢任何的混杂。在主的创造里,凡物“各从其类”。……我们需要纯净、严谨、单纯并归从我们的种类!我们若是公会,就该单单是公会。我们若是自由团体,就该单单是自由团体。我们不该说我们是别的。我们若是地方召会,就该单单是地方召会。我们必须如此单纯、单一、纯净,真正归从我们的种类。我们必须是绝对的。主从不尊重任何的混杂,必须是各从其类。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_h_1.htm', 'title': '第六周'}),
 Document(page_content='保罗在以弗所六章十二节也提到“诸天界里那邪恶的属灵势力”。这里的诸天界,指空中(二2)。撒但和他邪恶的属灵势力是在空中;但我们是坐在第三层天上,超过他们(6)。打仗的时候,凌驾仇敌之上的地位,在战略上是非常重要的。撒但和他邪恶的势力是在我们之下,他们注定是要被击败的。\n我们的争战不是抵挡人,乃是抵挡邪灵,就是诸天界里的属灵势力。背叛的天使是撒但国度里的邪灵。因此,召会和撒但之间的争战,乃是我们这些爱主并在祂召会中的人,抵挡诸天界里邪恶势力的争战。表面看是血肉之人破坏召会,实际上是撒但和他邪恶的天使在那些造成破坏的人背后作工。所以,我们必须争战,抵挡这些属灵的势力(以弗所书生命读经,六四二至六四三页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_h_4.htm', 'title': '第九周'}),
 Document(page_content='第二周\u3000周二\n晨兴喂养\n代上十六8\u3000你们要称谢耶和华,呼求祂的名,在万民中传扬祂的作为。\n出三14\u3000神对摩西说,我是那我是;又说,你要对以色列人这样说,那我是差我到你们这里来。\n神是普通的名字,耶和华是亲近的名字。神是指着神的能力说的,耶和华是指着神的爱心说的。神是指着创造方面说的,耶和华是指着神的亲近说的。创世记一章没有耶和华。因为是讲关乎创造方面的事,就是一章里提到人,也是关乎创造方面、能力方面的。二章是神和人亲密,有了关系,所以说耶和华神。……这……证明二章的耶和华,就是一章里的神。耶和华神不只是有能力的,也是和人亲近的(倪柝声文集第一辑第九册,六四页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_2.htm', 'title': '第二周'}),
 Document(page_content='对付灵并不是对付灵的本身,乃是对付灵的经过,也就是对付我们的存心、动机、目的、用意等等。我们每有一个行动,或者要说一句话,不只要问对不对,好不好,还要追查里面的存心清洁么?动机单纯么?目的专为着神么?有什么自私的用意么?有我们自己的倾向么?(李常受文集一九五三年第三册,六一四至六一六、六一九页)。\n信息选读\n我们……还要进一步的,把一切不好的存心,不该有的用意,不单纯的倾向,不正当的意志,有搀杂的情感等等,也都对付干净,然后灵才不只能出来,并且出来了,还能是正直的、纯净的。……对付灵,乃是重在对付我们里面不纯的存心、动机等杂质;而对付良心,乃是重在对付良心对那些杂质的感觉。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_h_2.htm', 'title': '第六周'}),
 Document(page_content='我们所要注意的是第三—我们怎样把神的旨意回头祷告神。……一切有价值的祷告都是回头的。如果我们的祷告只是为要成功我们所打算、所盼望的,这在属灵的世界中是没有多大价值的。必须是从神起头,我们响应,这才是有价值的祷告。神的工作是被这样的祷告所支配的。多少事,神愿意作,但是因为神的子民不祷告的缘故,祂宁可不作。神必须等人同意以后祂才去作,这是神作工的一个大原则,是圣经中最要紧的原则之一。\n当神创造人的时候,就给人有一个自由意志。这样,在宇宙之中就有了三个不同的意志:一个是神的意志,一个是仇敌撒但的意志,一个就是人的意志。按着人的想法,神为什么不在一分钟之内把撒但消灭了。但是神没有这样作。神要与人合起来去对付撒但。神有神的意志,撒但有撒但的意志,人也有人的意志。神就是要得着人的意志与祂合起来。……神不单独作,神要人与祂合作。这就是召会在地上的责任。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_5.htm', 'title': '第二周'}),
 Document(page_content='撒迦利亚九章九节……启示基督将要公义地带着给我们的救恩而来,并且祂要骑着驴,甚至骑着驴驹而来。这一节在四福音,在耶稣基督末次进入耶路撒冷时得了应验。祂来作王,乃是卑微的王、降卑的王,不是骑着骏马,乃是骑着驴驹(撒迦利亚书生命读经,四五五、四四○页)。\n信息选读\n撒迦利亚十一章十二至十三节启示,弥赛亚这位以色列合式的牧人被憎嫌、攻击、弃绝,并以三十锭银子,就是以一个奴仆的价值(出二一32)被卖。这里所预言的,在福音书里得着应验。主耶稣在罗马帝国统治的时候被卖,又为罗马的官长所审判。……撒迦利亚十一章十二节说,“我对他们说,你们若以为美,就给我工价;……于是他们称了三十锭银子作为我的工价。”这清楚指明基督被憎嫌、攻击、弃绝并被卖。我们若要明白这……经文,并要知道谁给了银子,谁将银子丢在耶和华的殿中(13),就需要研读四福音书。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_2.htm', 'title': '第一周'}),
 Document(page_content='“战兢”与“不忠信”\n我要强调两个辞。第一个辞是“战兢”。以赛亚六十六章一至二节说,“耶和华如此说,天是我的座位,地是我的脚凳;你们要在哪里为我建造殿宇?哪里是我安息的地方?……但我所看顾的,就是灵里贫穷痛悔、因我话战兢的人。”通常没有太多人留意到“战兢”这辞。我们多数时候强调要享受主的话,要吃主的话。的确,我们要恢复吃主的话。然而,圣经也告诉我们要惧怕神的话,因主的话战兢。我们来到主的话前,应当有一种郑重、认真的态度,甚至带着敬畏来接受主的话。我们要在主的话前谦卑自己。我们的回应,应当能配得上主的话。\n原谅我说,现今在神的子民中间,有一种错误的思想,以为圣经里有些话只是为着古时,今天已经不合时宜。我要告诉圣徒们:神的话是永远的。我们需要享受,我们需要吃,但我们也需要重看神的话,敬重神的话,我们要对主的话举起手说阿们,正如诗篇一百一十九篇四十八节所说的:“我要向你的诫命举手。”我们需要因主的话战兢。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_ts.htm', 'title': '第六篇'}),
 Document(page_content='请记得,每一位圣徒都是一个“小新耶路撒冷”。这意思是,在我们全人的中心,该有神和羔羊的宝座。我们要如何行事或生活,不该凭自己作决定,也不必凭自己作决定,因为在我们里面有宝座。我们在日常生活中该操练自己,在每件事上服从里面的宝座。启示录二十二章一节说,“城内街道当中一道生命水的河,明亮如水晶,从神和羔羊的宝座流出来。”如果我们在宝座的管制之下,就会得着生命水河的滋润和供应。我们如果拒绝宝座的管制,这道生命水的流就会停止。相信我们都曾有这样的经历,因为我们每一个人都是一个小新耶路撒冷。二节说,“在河这边与那边有生命树。”这宝座在我们全人的中心该是得胜的,然后生命水就会从宝座流出来供应我们,并将生命树带给我们,终日滋养我们。圣城的街道是纯金(二一21),金象征神圣的性情。有时我们会发觉里面生命的供应停止了,这是因为我们没有活在神圣的性情里。在新耶路撒冷里,只有一条纯金的街道。我们应该行走在其中,以神圣的性情为我们的道路。这神圣的性情是在我们的灵里,并且要从我们的灵往外扩展到我们全人的三部分。神圣的性情里有一种自然而然的本能,使我们摸到世俗的、不圣别的事物时,会觉得不对劲;神圣的性情会拒绝这些事物。另一面,我们若走在', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/11_ts.htm', 'title': '第十一篇'}),
 Document(page_content='第一周\u3000周六\n晨兴喂养\n亚十二1\u3000耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说。\n十8\u3000我要向他们发哨声,聚集他们,因我已经救赎他们;他们的人数必增多,如从前增多一样。\n诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一。何等奇妙,在旧约这卷揭示基督与人类历史和政治息息相关的书里,有这样的一节〔亚十二1〕。这指明在神的经纶里,神计划要使基督作祂在地上行动的中心与普及。祂是神,几千年来,在一个接一个的世代中,一直掌管全人类,管理世界的局势。为使祂所拣选的人能关心祂这位创造主并救赎主,祂需要为人创造一个接受的器官,使人能接受神计划里之基督一切的所是。基督是奇妙的,但我们若没有灵,怎能接受祂?……我们若忽略我们人的灵,就没有路可以接触神了(撒迦利亚书生命读经,四五六页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_6.htm', 'title': '第一周'}),
 Document(page_content='撒迦利亚十二章一节说,“耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说”\n撒迦利亚十二章一节说,“耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说。”这里所说的,乃是关系到人类历史中的神圣历史。\n神在祂的创造里,造了三样极其关键、同等重要的东西—诸天、地和人的灵;诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一\n神在祂的创造里,造了三样极其关键、同等重要的东西—诸天、地和人的灵。诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一(1)。神给我们造了一个灵。因为祂是灵,如今我们能用我们的灵质实祂。我们能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一。\n人里面的中央政府并最重要的部分应当是他的灵;一个受他的灵管治并支配的人就是属灵的人', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='五十二年过去了,至今我一点也不懊悔。在这五十二年中,我看见故事一再重演,人来了又去了,一幕又一幕。从台湾岛上的工作开始至今,三十几年中有几次重大的事情发生,甚至我带得救、一手造就出来的弟兄,也离开了主的恢复。异象不变,但人会变,跟从人的也会变。所以我愿语重心长地劝勉诸位:我蒙主怜悯,今天能在这里,把这个异象带给你们;我乃是盼望你们跟随的,不是我这个人,而是我蒙主怜悯所给你们看见的这异象。\n我只告诉你们一个事实,是主怜悯我,启示给我看见异象。所以我劝你们,不要跟随我,乃要跟随我蒙主怜悯,承继倪弟兄和历代主的仆人所留下,传承给你们看见的这个异象。这实在是从亚当头一幕的异象,直到新耶路撒冷末了一幕的异象(五一至五四页)。\n在这段话里我们实在看见主仆人的纯洁;他不要我们跟随他这个人,乃要我们跟随时代的异象。我们的“清明上河图”是从亚当和生命树开始,一路延展到新耶路撒冷。我们需要看见整幅图画,这异象就是主恢复里的领导。当你有了这样宽广的异象,你还能到哪里去?这异象约束我们生活的每一面,包括我们的事奉、行动、家庭生活和召会生活。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'})]
In [ ]:
question = '第八周讲了什么?'
In [ ]:
# get context related to the question from the embedding model
vectorstore.similarity_search(question, 30)
Out[ ]:
[Document(page_content='神在人里之行动的五个步骤', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='第十篇\n历代志、以斯拉记、尼希米记、以斯帖记结晶读经\n第十篇\u3000以斯拉记和尼希米记这两卷恢复的书中心并重要的点—主恢复中正确并适当的领导\n调速 \u3000\n本篇信息,我们来到另一个结晶,题目是“以斯拉记和尼希米记这两卷恢复的书中心并重要的点—主恢复中正确并适当的领导”。许多人可能对以斯拉记和尼希米记有这样的结晶,感到意外。相信很少有人能读出这两卷书中心并重要的点,是主恢复中正确并适当的领导。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'}),
 Document(page_content='因为这爱是在基督里、同着基督、借着基督并为着基督的。”神在人里之行动的五个步骤,就是这“慈绳”(人的绳);每一步骤都与基督的人性有关。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='经历:属灵人乃是一个受他的灵管治并支配的人。\n应用:我们需要操练灵,全心转向主。\n一句话:基督乃是神经纶的中心与普及。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_6.htm', 'title': '第一周'}),
 Document(page_content='以赛亚为什么会得到这一个结论?又怎么根据这一个结论,而有了这一个说法?如果你把整卷以赛亚书都读过,你就能读出那一个原因。那是因为神在以色列人中间,在以色列人身上,作了许许多多的事,但神却把自己藏在一边,藏在以色列人的旁边,藏在以色列人的背后。不错,祂是一直在那里作事,但另一面祂却一直把自己隐藏起来。一大堆的事都是祂作的,但以色列人却看不出来那一位作这些事者到底是谁。所以当申言者以赛亚发现了这件事,他就在那里说,“……你实在是自隐的神。”', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_1.htm', 'title': '第十二周'}),
 Document(page_content='因着己是最大的仇敌,所以我们需要经历神话语的杀死能力。当我们祷读时,我们一面得着滋养,一面某些元素就被杀死。也许你受到疑惑、忌恨、嫉妒、骄傲以及自私的困扰。你知道这些东西能借着祷读主话而杀死么?我们越接受主的话连同其杀死的能力,我们的骄傲以及里面一切消极的元素就越被治死。借着祷读,里面的对头就被除灭。我们祷读主话一段时间后,就会发觉攻击我们的对头消失了。就着非常实际的意义说,我们的对头被接受到我们里面的话杀死了。\n在以弗所五章,话是为着滋养,使新妇美丽。但在六章,话是为着杀死,使召会能作团体的战士,从事属灵的争战(以弗所书生命读经,九八一、九八八、九九○页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_5.htm', 'title': '第一周'}),
 Document(page_content='第九篇\n历代志、以斯拉记、尼希米记、以斯帖记结晶读经\n第九篇\u3000建造与争战—为着召会的建造,需要从事属灵的争战\n调速 \u3000\n本篇信息的篇题是“建造与争战—为着召会的建造,需要从事属灵的争战”。这信息是直接向着基督团体的身体,然后间接向着基督身体上所有肢体说的。属灵的争战乃是基督身体的事,我们必须在身体里争战。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_ts.htm', 'title': '第九篇'}),
 Document(page_content='圣经的最后两章讲到这个宇宙的建造,就是神性与人性的调和。我们可以说,那就是神在已过的永远里渴望得着的。在将来的永远,祂要得着这样一个相互的住处。盼望我们众人能对建造有一个新鲜、更新的异象。遗憾地说,今天在基督徒中间,即便是热心的基督徒,也少有人看见并在乎这件事。但我要问弟兄姊妹:我们在这里是为着什么?我们在这里有什么负担?我们在这里是为着什么而活?我们乃是为着神殿的建造。我们为此被预定、蒙救赎、得重生,我们也为此正在被变化,好成为石头来为着这个建造。所以我们今天要实行召会生活,好在这个时代完成建造的工作。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/4_ts.htm', 'title': '第四篇'}),
 Document(page_content='确定的话 定住的光\n启示:主的生命就是人的光。\n经历:正确的教训总是释放生命的光。\n应用:借着传福音和牧养把人带到神圣的光中。\n一句话:出黑暗并进入祂奇妙之光。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/5_h_4.htm', 'title': '第五周'}),
 Document(page_content='告诉我不该祷告。相反的,你嘱咐我祷告。因此,主,我现在祷告,求你表白。”……这个比喻的意义很深奥,我们都需要认识这里所启示的神(路加福音生命读经,四○二至四○四页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_5.htm', 'title': '第十二周'}),
 Document(page_content='确定的话 定住的光\n启示:“耶和华”的意思是“我是那我是”。\n经历:今天在主的恢复里,我们乃是在应验的阶段。\n应用:当你遭遇试验、试炼和难处时,倚靠耶和华神。\n一句话:你们要称谢耶和华,呼求祂的名。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_2.htm', 'title': '第二周'}),
 Document(page_content='当反对我们的人逼迫我们的时候,我们的神似乎是不义的,因为祂允许祂的儿女遭受不义的逼迫。比方,施浸者约翰被斩,彼得殉道,保罗下监,约翰被放逐。历世历代以来,千千万万诚实、忠信跟从人救主的人都遭受过不义的逼迫,甚至今天我们仍遭受不义的错待。我们的神似乎不公平,因为祂不来审判并表白。\n活神、公义的神在哪里?祂为什么容忍这种光景?祂为什么不审判那些逼迫我们的人?因着这种光景,人救主在路加十八章一至八节用一个不义的审判官,来表征那似乎不为祂受逼迫的子民作些什么的神。……从这比喻我们要学习作个烦扰的寡妇, 一个恒切向神祷告的人(路加福音生命读经,四○一至四○二页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_5.htm', 'title': '第十二周'}),
 Document(page_content='当神对某一件事的态度改变时,祂就有一个时代的行动。……神最重要的时代行动是在启示录十二章。祂要结束这个时代,带进国度时代。祂的定旨不是笼统和一般的。祂怎样才能结束这个时代,带进另一个时代?祂必须得着祂时代的凭借(译自《圣洁没有瑕疵》英文版附录)。\n信息选读\n男孩子的被提结束召会时代并引进国度时代。男孩子使神能有所行动。……我们绝不该忘记,神是能被限制的。在祂一切的行动中,祂等候人。神在天上的捆绑是基于我们在地上的捆绑;神在天上的释放是基于我们在地上的释放。每一件事都在于召会。\n作得胜者主要不是为着逃避大灾难。我们需要看见被提对主的价值,不是对我们的价值。\n在所有时代的行动中,男孩子是最大的,因为这除去人的能力和魔鬼的能力,并带进国度。我们活在这时代是最享特权的,我们能为神作得最多。光要使我们看见道路,而力量和能力要使我们能行走这道路。现今要被神使用,就必须付极大的代价。\n神的心意是要受造之物来对付堕落的受造之物。照着祂的定旨,全召会都该对付撒但;然而,召会堕落了……。神的定旨得以在得胜者身上成就,是因为他们与祂同工。……神总是得着一班得胜者,来进行时代的行动。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/7_h_1.htm', 'title': '第七周'}),
 Document(page_content='带领的人乃是奴仆\n在神子民中间的领导这件事,非常重大。神对领导的观念,与我们天然的观念迥然不同。我们需要看三处经文:马太二十三章八至十节,希伯来十三章七节和十七节,以及马太二十章二十五至二十八节。乍看之下,马太二十三章和希伯来十三章这两处经文似乎互相矛盾。在马太二十三章八至十节,主说,“但你们不要受拉比的称呼,因为只有一位是你们的夫子,你们都是弟兄;也不要称地上的人为父,因为只有一位是你们的父,就是那天上的;也不要受师尊的称呼,因为只有一位是你们的师尊,就是基督。”主的意思是,没有人是你们的师尊,只有基督是,甚至不该有师尊的称呼,或父的称呼,因为只有一位领头人,就是基督。然而,希伯来十三章七节说,“要记念那些带领你们……的人。”十七节说,“你们要信从那些带领你们的,且要服从。”那么,到底有没有带领的人呢?', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'}),
 Document(page_content='信息选读\n联结的信使得胜者有资格在基督凯旋回来时与祂相见,这是对得胜者的神圣要求。这是根据路加十八章八节。……今天,整个世界都是不信的。今天不仅在外邦人、异教徒中间,甚至在犹太人、天主教徒、更正教徒和灵恩派的人中间,何处找得到信心?如果主今天来了,祂在哪里找得到信心?地上几乎没有一个人是相信的。但因着祂的怜悯,在已过年间,借着倪弟兄的带领,我们被带进一种光景,学习在凡事上不信靠我们自己,只相信我们的神是一切。\n我盼望主回来时,祂能找到你我都是相信的人,是一直信靠祂,不信靠自己,对自己没有确信的人。我们的确信完全在祂身上。这是联结的信。这信是得胜者的资格,这是神圣的要求,使你我作为得胜者,可以在基督凯旋回来时与祂相见。……最终,主会找到一些人,就是少数的得胜者,他们在主回来时,是凭联结的信而活。……基督盼望找着我们作祂隐藏的得胜者。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_6.htm', 'title': '第十二周'}),
 Document(page_content=',在那里进攻,要把基督所建造的召会,拖到死亡里去。但你在那里也看见,召会有权柄,有诸天之国的钥匙,能在那里捆绑天上所捆绑的,释放天上所释放的。召会是有权柄的,召会也是争战而得胜的(李常受文集一九五七年第二册,八七至八八页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_h_3.htm', 'title': '第九周'}),
 Document(page_content='信息选读\n这男孩子并不是个人的,乃是团体的。……这团体的男孩子包括作他元首、中心、实际、生命和本质的主耶稣。……诗篇二篇八至九节预言主耶稣,神的受膏者,要用铁杖辖管列国;启示录二章二十六至二十七节说,召会中的得胜者要用铁杖辖管列国;而十二章五节告诉我们,男孩子要用铁杖辖管万国。因此,……主耶稣自己和祂的得胜者都要用铁杖辖管万国。所以,十二章五节的男孩子,包括主耶稣和召会中的得胜者。此外,二十章四节说,基督和复活的得胜者要作王掌权一千年。因此,启示录十二章的男孩子,既不是指个人的主耶稣,也不是指与祂分开的得胜者,乃是指主耶稣连同得胜者。基督自己是头一位得胜者(三21)。祂这位领头的得胜者,乃是众得胜者的元首、中心、实际、生命和本质。在地上属神的人中间,有一部分是刚强的,包括主耶稣和得胜者。因此,男孩子是由主耶稣和祂的得胜者组成的。\n主耶稣是男孩子,却从女人而生。……这件事属灵的意义是说,主耶稣是从信靠神的源头而生。……男孩子的源头是女人,不是男人。……男孩子是信靠神、倚靠神之女人的后裔。主耶稣就是从这样的源头而出的后裔。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/7_h_2.htm', 'title': '第七周'}),
 Document(page_content='信息选读\n撒迦利亚四章十二节说到……枝子“流出金”。这里的“金”是指油。油和金乃是一。油是指那灵,那灵乃是神。不仅如此,按预表,金表征神。那充满油碗的金乃是那灵,那灵就是神;神是由金所表征的。我们将这事应用到今天的经历时,就看见从我们里面流出来的那灵就是神,而神就是金。因此,我们将基督供应给别人,用油供应他们的时候,实际上就是用神供应他们。神从我们流出来,流到他们里面。我们都该是橄榄树,从我们自己里面流出神来,流到别人里面(撒迦利亚书生命读经,四一三至四一四页)。\n在出埃及记,灯台是基督作神的具体化身;在新约末了,灯台是众召会作三一神具体化身的繁增。……这灯台只有两个基本元素—金和油。金是具体的形状,油是燃烧的元素。当这二者放在一起,就有灯台照耀,在神的三一里彰显祂,有父的性情和素质、子的形像和样子以及灵的彰显。……撒迦利亚四章十二节告诉我们,灯台的油乃是金油。……召会作为灯台,乃是三一神扎实的具体化身,有七倍的灵作为油。事实上,油的素质就是金的元素。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/4_h_6.htm', 'title': '第四周'}),
 Document(page_content='自隐的神默默却强有力地在我们里面运行\n自隐的神默默却强有力地在我们里面运行(腓二13)。这是在我们与主的关系中,一件非常个人的事。“默默”指明不只是隐藏的,更是安静的,甚至是沉默的。我们通常不会将“安静”和“沉默”这二辞,联于有活力的行动。但神的确是默默却强有力地在我们里面运行。神之所以能强有力地运行,指明我们所是的某些部分被主征服、对付、变化了。主在这个内里的争战中征服了我们,祂正在强有力地摸着我们内里核心的部分。这也就是祂对我们美妙的照顾。祂知道我们愿意作敞开的器皿。当我们愿意对祂说,“主啊,我不知道自己的光景如何,也不知道自己需要什么;但是你知道。无论你想要到哪里,摸着什么,求你自己来作。”祂就会进到我们的深处,以一种隐藏的方式来对付那些抵触祂的事物,并以包罗万有的基督来顶替。你自己可能不会察觉,但别人会感觉得到。最近我听见一位中年姊妹在聚会中简短的说话,我里面满了感谢和敬拜。她自己也许没有察觉,但基督从她照耀出来了。隐藏的神在她里面作工,使基督在她里面长大并扩展。这位隐藏的神也正在我们每一位里面默默地作工。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_ts.htm', 'title': '第十二篇'}),
 Document(page_content='信息选读\n当〔主的〕恢复是圣别的,我们就会看见主的祝福。在一些地方祝福受到拦阻,原因乃是因着背景而引起的混杂。我们曾多次被定罪,说我们不邀请别人来我们的聚会中说话。我们不是骄傲,但我们的确谨慎。……已过我们曾经试过,却只引起麻烦;所以我们学了功课。这不是说我们狭窄,乃是说,这个恢复是如此纯净、单纯、圣别。我们的确需要以斯拉来作洁净的工作。主不喜欢任何的混杂。在主的创造里,凡物“各从其类”。……我们需要纯净、严谨、单纯并归从我们的种类!我们若是公会,就该单单是公会。我们若是自由团体,就该单单是自由团体。我们不该说我们是别的。我们若是地方召会,就该单单是地方召会。我们必须如此单纯、单一、纯净,真正归从我们的种类。我们必须是绝对的。主从不尊重任何的混杂,必须是各从其类。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_h_1.htm', 'title': '第六周'}),
 Document(page_content='保罗在以弗所六章十二节也提到“诸天界里那邪恶的属灵势力”。这里的诸天界,指空中(二2)。撒但和他邪恶的属灵势力是在空中;但我们是坐在第三层天上,超过他们(6)。打仗的时候,凌驾仇敌之上的地位,在战略上是非常重要的。撒但和他邪恶的势力是在我们之下,他们注定是要被击败的。\n我们的争战不是抵挡人,乃是抵挡邪灵,就是诸天界里的属灵势力。背叛的天使是撒但国度里的邪灵。因此,召会和撒但之间的争战,乃是我们这些爱主并在祂召会中的人,抵挡诸天界里邪恶势力的争战。表面看是血肉之人破坏召会,实际上是撒但和他邪恶的天使在那些造成破坏的人背后作工。所以,我们必须争战,抵挡这些属灵的势力(以弗所书生命读经,六四二至六四三页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_h_4.htm', 'title': '第九周'}),
 Document(page_content='第二周\u3000周二\n晨兴喂养\n代上十六8\u3000你们要称谢耶和华,呼求祂的名,在万民中传扬祂的作为。\n出三14\u3000神对摩西说,我是那我是;又说,你要对以色列人这样说,那我是差我到你们这里来。\n神是普通的名字,耶和华是亲近的名字。神是指着神的能力说的,耶和华是指着神的爱心说的。神是指着创造方面说的,耶和华是指着神的亲近说的。创世记一章没有耶和华。因为是讲关乎创造方面的事,就是一章里提到人,也是关乎创造方面、能力方面的。二章是神和人亲密,有了关系,所以说耶和华神。……这……证明二章的耶和华,就是一章里的神。耶和华神不只是有能力的,也是和人亲近的(倪柝声文集第一辑第九册,六四页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_2.htm', 'title': '第二周'}),
 Document(page_content='对付灵并不是对付灵的本身,乃是对付灵的经过,也就是对付我们的存心、动机、目的、用意等等。我们每有一个行动,或者要说一句话,不只要问对不对,好不好,还要追查里面的存心清洁么?动机单纯么?目的专为着神么?有什么自私的用意么?有我们自己的倾向么?(李常受文集一九五三年第三册,六一四至六一六、六一九页)。\n信息选读\n我们……还要进一步的,把一切不好的存心,不该有的用意,不单纯的倾向,不正当的意志,有搀杂的情感等等,也都对付干净,然后灵才不只能出来,并且出来了,还能是正直的、纯净的。……对付灵,乃是重在对付我们里面不纯的存心、动机等杂质;而对付良心,乃是重在对付良心对那些杂质的感觉。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_h_2.htm', 'title': '第六周'}),
 Document(page_content='我们所要注意的是第三—我们怎样把神的旨意回头祷告神。……一切有价值的祷告都是回头的。如果我们的祷告只是为要成功我们所打算、所盼望的,这在属灵的世界中是没有多大价值的。必须是从神起头,我们响应,这才是有价值的祷告。神的工作是被这样的祷告所支配的。多少事,神愿意作,但是因为神的子民不祷告的缘故,祂宁可不作。神必须等人同意以后祂才去作,这是神作工的一个大原则,是圣经中最要紧的原则之一。\n当神创造人的时候,就给人有一个自由意志。这样,在宇宙之中就有了三个不同的意志:一个是神的意志,一个是仇敌撒但的意志,一个就是人的意志。按着人的想法,神为什么不在一分钟之内把撒但消灭了。但是神没有这样作。神要与人合起来去对付撒但。神有神的意志,撒但有撒但的意志,人也有人的意志。神就是要得着人的意志与祂合起来。……神不单独作,神要人与祂合作。这就是召会在地上的责任。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_5.htm', 'title': '第二周'}),
 Document(page_content='撒迦利亚九章九节……启示基督将要公义地带着给我们的救恩而来,并且祂要骑着驴,甚至骑着驴驹而来。这一节在四福音,在耶稣基督末次进入耶路撒冷时得了应验。祂来作王,乃是卑微的王、降卑的王,不是骑着骏马,乃是骑着驴驹(撒迦利亚书生命读经,四五五、四四○页)。\n信息选读\n撒迦利亚十一章十二至十三节启示,弥赛亚这位以色列合式的牧人被憎嫌、攻击、弃绝,并以三十锭银子,就是以一个奴仆的价值(出二一32)被卖。这里所预言的,在福音书里得着应验。主耶稣在罗马帝国统治的时候被卖,又为罗马的官长所审判。……撒迦利亚十一章十二节说,“我对他们说,你们若以为美,就给我工价;……于是他们称了三十锭银子作为我的工价。”这清楚指明基督被憎嫌、攻击、弃绝并被卖。我们若要明白这……经文,并要知道谁给了银子,谁将银子丢在耶和华的殿中(13),就需要研读四福音书。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_2.htm', 'title': '第一周'}),
 Document(page_content='“战兢”与“不忠信”\n我要强调两个辞。第一个辞是“战兢”。以赛亚六十六章一至二节说,“耶和华如此说,天是我的座位,地是我的脚凳;你们要在哪里为我建造殿宇?哪里是我安息的地方?……但我所看顾的,就是灵里贫穷痛悔、因我话战兢的人。”通常没有太多人留意到“战兢”这辞。我们多数时候强调要享受主的话,要吃主的话。的确,我们要恢复吃主的话。然而,圣经也告诉我们要惧怕神的话,因主的话战兢。我们来到主的话前,应当有一种郑重、认真的态度,甚至带着敬畏来接受主的话。我们要在主的话前谦卑自己。我们的回应,应当能配得上主的话。\n原谅我说,现今在神的子民中间,有一种错误的思想,以为圣经里有些话只是为着古时,今天已经不合时宜。我要告诉圣徒们:神的话是永远的。我们需要享受,我们需要吃,但我们也需要重看神的话,敬重神的话,我们要对主的话举起手说阿们,正如诗篇一百一十九篇四十八节所说的:“我要向你的诫命举手。”我们需要因主的话战兢。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_ts.htm', 'title': '第六篇'}),
 Document(page_content='请记得,每一位圣徒都是一个“小新耶路撒冷”。这意思是,在我们全人的中心,该有神和羔羊的宝座。我们要如何行事或生活,不该凭自己作决定,也不必凭自己作决定,因为在我们里面有宝座。我们在日常生活中该操练自己,在每件事上服从里面的宝座。启示录二十二章一节说,“城内街道当中一道生命水的河,明亮如水晶,从神和羔羊的宝座流出来。”如果我们在宝座的管制之下,就会得着生命水河的滋润和供应。我们如果拒绝宝座的管制,这道生命水的流就会停止。相信我们都曾有这样的经历,因为我们每一个人都是一个小新耶路撒冷。二节说,“在河这边与那边有生命树。”这宝座在我们全人的中心该是得胜的,然后生命水就会从宝座流出来供应我们,并将生命树带给我们,终日滋养我们。圣城的街道是纯金(二一21),金象征神圣的性情。有时我们会发觉里面生命的供应停止了,这是因为我们没有活在神圣的性情里。在新耶路撒冷里,只有一条纯金的街道。我们应该行走在其中,以神圣的性情为我们的道路。这神圣的性情是在我们的灵里,并且要从我们的灵往外扩展到我们全人的三部分。神圣的性情里有一种自然而然的本能,使我们摸到世俗的、不圣别的事物时,会觉得不对劲;神圣的性情会拒绝这些事物。另一面,我们若走在', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/11_ts.htm', 'title': '第十一篇'}),
 Document(page_content='第一周\u3000周六\n晨兴喂养\n亚十二1\u3000耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说。\n十8\u3000我要向他们发哨声,聚集他们,因我已经救赎他们;他们的人数必增多,如从前增多一样。\n诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一。何等奇妙,在旧约这卷揭示基督与人类历史和政治息息相关的书里,有这样的一节〔亚十二1〕。这指明在神的经纶里,神计划要使基督作祂在地上行动的中心与普及。祂是神,几千年来,在一个接一个的世代中,一直掌管全人类,管理世界的局势。为使祂所拣选的人能关心祂这位创造主并救赎主,祂需要为人创造一个接受的器官,使人能接受神计划里之基督一切的所是。基督是奇妙的,但我们若没有灵,怎能接受祂?……我们若忽略我们人的灵,就没有路可以接触神了(撒迦利亚书生命读经,四五六页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_6.htm', 'title': '第一周'}),
 Document(page_content='撒迦利亚十二章一节说,“耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说”\n撒迦利亚十二章一节说,“耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说。”这里所说的,乃是关系到人类历史中的神圣历史。\n神在祂的创造里,造了三样极其关键、同等重要的东西—诸天、地和人的灵;诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一\n神在祂的创造里,造了三样极其关键、同等重要的东西—诸天、地和人的灵。诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一(1)。神给我们造了一个灵。因为祂是灵,如今我们能用我们的灵质实祂。我们能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一。\n人里面的中央政府并最重要的部分应当是他的灵;一个受他的灵管治并支配的人就是属灵的人', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='五十二年过去了,至今我一点也不懊悔。在这五十二年中,我看见故事一再重演,人来了又去了,一幕又一幕。从台湾岛上的工作开始至今,三十几年中有几次重大的事情发生,甚至我带得救、一手造就出来的弟兄,也离开了主的恢复。异象不变,但人会变,跟从人的也会变。所以我愿语重心长地劝勉诸位:我蒙主怜悯,今天能在这里,把这个异象带给你们;我乃是盼望你们跟随的,不是我这个人,而是我蒙主怜悯所给你们看见的这异象。\n我只告诉你们一个事实,是主怜悯我,启示给我看见异象。所以我劝你们,不要跟随我,乃要跟随我蒙主怜悯,承继倪弟兄和历代主的仆人所留下,传承给你们看见的这个异象。这实在是从亚当头一幕的异象,直到新耶路撒冷末了一幕的异象(五一至五四页)。\n在这段话里我们实在看见主仆人的纯洁;他不要我们跟随他这个人,乃要我们跟随时代的异象。我们的“清明上河图”是从亚当和生命树开始,一路延展到新耶路撒冷。我们需要看见整幅图画,这异象就是主恢复里的领导。当你有了这样宽广的异象,你还能到哪里去?这异象约束我们生活的每一面,包括我们的事奉、行动、家庭生活和召会生活。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'})]
In [ ]:
question = '七倍加强的灵是什么?'
In [ ]:
# get context related to the question from the embedding model
vectorstore.similarity_search(question, 30)
Out[ ]:
[Document(page_content='神在人里之行动的五个步骤', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='第十篇\n历代志、以斯拉记、尼希米记、以斯帖记结晶读经\n第十篇\u3000以斯拉记和尼希米记这两卷恢复的书中心并重要的点—主恢复中正确并适当的领导\n调速 \u3000\n本篇信息,我们来到另一个结晶,题目是“以斯拉记和尼希米记这两卷恢复的书中心并重要的点—主恢复中正确并适当的领导”。许多人可能对以斯拉记和尼希米记有这样的结晶,感到意外。相信很少有人能读出这两卷书中心并重要的点,是主恢复中正确并适当的领导。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'}),
 Document(page_content='因为这爱是在基督里、同着基督、借着基督并为着基督的。”神在人里之行动的五个步骤,就是这“慈绳”(人的绳);每一步骤都与基督的人性有关。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='经历:属灵人乃是一个受他的灵管治并支配的人。\n应用:我们需要操练灵,全心转向主。\n一句话:基督乃是神经纶的中心与普及。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_6.htm', 'title': '第一周'}),
 Document(page_content='以赛亚为什么会得到这一个结论?又怎么根据这一个结论,而有了这一个说法?如果你把整卷以赛亚书都读过,你就能读出那一个原因。那是因为神在以色列人中间,在以色列人身上,作了许许多多的事,但神却把自己藏在一边,藏在以色列人的旁边,藏在以色列人的背后。不错,祂是一直在那里作事,但另一面祂却一直把自己隐藏起来。一大堆的事都是祂作的,但以色列人却看不出来那一位作这些事者到底是谁。所以当申言者以赛亚发现了这件事,他就在那里说,“……你实在是自隐的神。”', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_1.htm', 'title': '第十二周'}),
 Document(page_content='因着己是最大的仇敌,所以我们需要经历神话语的杀死能力。当我们祷读时,我们一面得着滋养,一面某些元素就被杀死。也许你受到疑惑、忌恨、嫉妒、骄傲以及自私的困扰。你知道这些东西能借着祷读主话而杀死么?我们越接受主的话连同其杀死的能力,我们的骄傲以及里面一切消极的元素就越被治死。借着祷读,里面的对头就被除灭。我们祷读主话一段时间后,就会发觉攻击我们的对头消失了。就着非常实际的意义说,我们的对头被接受到我们里面的话杀死了。\n在以弗所五章,话是为着滋养,使新妇美丽。但在六章,话是为着杀死,使召会能作团体的战士,从事属灵的争战(以弗所书生命读经,九八一、九八八、九九○页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_5.htm', 'title': '第一周'}),
 Document(page_content='第九篇\n历代志、以斯拉记、尼希米记、以斯帖记结晶读经\n第九篇\u3000建造与争战—为着召会的建造,需要从事属灵的争战\n调速 \u3000\n本篇信息的篇题是“建造与争战—为着召会的建造,需要从事属灵的争战”。这信息是直接向着基督团体的身体,然后间接向着基督身体上所有肢体说的。属灵的争战乃是基督身体的事,我们必须在身体里争战。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_ts.htm', 'title': '第九篇'}),
 Document(page_content='圣经的最后两章讲到这个宇宙的建造,就是神性与人性的调和。我们可以说,那就是神在已过的永远里渴望得着的。在将来的永远,祂要得着这样一个相互的住处。盼望我们众人能对建造有一个新鲜、更新的异象。遗憾地说,今天在基督徒中间,即便是热心的基督徒,也少有人看见并在乎这件事。但我要问弟兄姊妹:我们在这里是为着什么?我们在这里有什么负担?我们在这里是为着什么而活?我们乃是为着神殿的建造。我们为此被预定、蒙救赎、得重生,我们也为此正在被变化,好成为石头来为着这个建造。所以我们今天要实行召会生活,好在这个时代完成建造的工作。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/4_ts.htm', 'title': '第四篇'}),
 Document(page_content='确定的话 定住的光\n启示:主的生命就是人的光。\n经历:正确的教训总是释放生命的光。\n应用:借着传福音和牧养把人带到神圣的光中。\n一句话:出黑暗并进入祂奇妙之光。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/5_h_4.htm', 'title': '第五周'}),
 Document(page_content='告诉我不该祷告。相反的,你嘱咐我祷告。因此,主,我现在祷告,求你表白。”……这个比喻的意义很深奥,我们都需要认识这里所启示的神(路加福音生命读经,四○二至四○四页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_5.htm', 'title': '第十二周'}),
 Document(page_content='确定的话 定住的光\n启示:“耶和华”的意思是“我是那我是”。\n经历:今天在主的恢复里,我们乃是在应验的阶段。\n应用:当你遭遇试验、试炼和难处时,倚靠耶和华神。\n一句话:你们要称谢耶和华,呼求祂的名。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_2.htm', 'title': '第二周'}),
 Document(page_content='当反对我们的人逼迫我们的时候,我们的神似乎是不义的,因为祂允许祂的儿女遭受不义的逼迫。比方,施浸者约翰被斩,彼得殉道,保罗下监,约翰被放逐。历世历代以来,千千万万诚实、忠信跟从人救主的人都遭受过不义的逼迫,甚至今天我们仍遭受不义的错待。我们的神似乎不公平,因为祂不来审判并表白。\n活神、公义的神在哪里?祂为什么容忍这种光景?祂为什么不审判那些逼迫我们的人?因着这种光景,人救主在路加十八章一至八节用一个不义的审判官,来表征那似乎不为祂受逼迫的子民作些什么的神。……从这比喻我们要学习作个烦扰的寡妇, 一个恒切向神祷告的人(路加福音生命读经,四○一至四○二页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_5.htm', 'title': '第十二周'}),
 Document(page_content='当神对某一件事的态度改变时,祂就有一个时代的行动。……神最重要的时代行动是在启示录十二章。祂要结束这个时代,带进国度时代。祂的定旨不是笼统和一般的。祂怎样才能结束这个时代,带进另一个时代?祂必须得着祂时代的凭借(译自《圣洁没有瑕疵》英文版附录)。\n信息选读\n男孩子的被提结束召会时代并引进国度时代。男孩子使神能有所行动。……我们绝不该忘记,神是能被限制的。在祂一切的行动中,祂等候人。神在天上的捆绑是基于我们在地上的捆绑;神在天上的释放是基于我们在地上的释放。每一件事都在于召会。\n作得胜者主要不是为着逃避大灾难。我们需要看见被提对主的价值,不是对我们的价值。\n在所有时代的行动中,男孩子是最大的,因为这除去人的能力和魔鬼的能力,并带进国度。我们活在这时代是最享特权的,我们能为神作得最多。光要使我们看见道路,而力量和能力要使我们能行走这道路。现今要被神使用,就必须付极大的代价。\n神的心意是要受造之物来对付堕落的受造之物。照着祂的定旨,全召会都该对付撒但;然而,召会堕落了……。神的定旨得以在得胜者身上成就,是因为他们与祂同工。……神总是得着一班得胜者,来进行时代的行动。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/7_h_1.htm', 'title': '第七周'}),
 Document(page_content='带领的人乃是奴仆\n在神子民中间的领导这件事,非常重大。神对领导的观念,与我们天然的观念迥然不同。我们需要看三处经文:马太二十三章八至十节,希伯来十三章七节和十七节,以及马太二十章二十五至二十八节。乍看之下,马太二十三章和希伯来十三章这两处经文似乎互相矛盾。在马太二十三章八至十节,主说,“但你们不要受拉比的称呼,因为只有一位是你们的夫子,你们都是弟兄;也不要称地上的人为父,因为只有一位是你们的父,就是那天上的;也不要受师尊的称呼,因为只有一位是你们的师尊,就是基督。”主的意思是,没有人是你们的师尊,只有基督是,甚至不该有师尊的称呼,或父的称呼,因为只有一位领头人,就是基督。然而,希伯来十三章七节说,“要记念那些带领你们……的人。”十七节说,“你们要信从那些带领你们的,且要服从。”那么,到底有没有带领的人呢?', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'}),
 Document(page_content='信息选读\n联结的信使得胜者有资格在基督凯旋回来时与祂相见,这是对得胜者的神圣要求。这是根据路加十八章八节。……今天,整个世界都是不信的。今天不仅在外邦人、异教徒中间,甚至在犹太人、天主教徒、更正教徒和灵恩派的人中间,何处找得到信心?如果主今天来了,祂在哪里找得到信心?地上几乎没有一个人是相信的。但因着祂的怜悯,在已过年间,借着倪弟兄的带领,我们被带进一种光景,学习在凡事上不信靠我们自己,只相信我们的神是一切。\n我盼望主回来时,祂能找到你我都是相信的人,是一直信靠祂,不信靠自己,对自己没有确信的人。我们的确信完全在祂身上。这是联结的信。这信是得胜者的资格,这是神圣的要求,使你我作为得胜者,可以在基督凯旋回来时与祂相见。……最终,主会找到一些人,就是少数的得胜者,他们在主回来时,是凭联结的信而活。……基督盼望找着我们作祂隐藏的得胜者。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_h_6.htm', 'title': '第十二周'}),
 Document(page_content=',在那里进攻,要把基督所建造的召会,拖到死亡里去。但你在那里也看见,召会有权柄,有诸天之国的钥匙,能在那里捆绑天上所捆绑的,释放天上所释放的。召会是有权柄的,召会也是争战而得胜的(李常受文集一九五七年第二册,八七至八八页)。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_h_3.htm', 'title': '第九周'}),
 Document(page_content='信息选读\n这男孩子并不是个人的,乃是团体的。……这团体的男孩子包括作他元首、中心、实际、生命和本质的主耶稣。……诗篇二篇八至九节预言主耶稣,神的受膏者,要用铁杖辖管列国;启示录二章二十六至二十七节说,召会中的得胜者要用铁杖辖管列国;而十二章五节告诉我们,男孩子要用铁杖辖管万国。因此,……主耶稣自己和祂的得胜者都要用铁杖辖管万国。所以,十二章五节的男孩子,包括主耶稣和召会中的得胜者。此外,二十章四节说,基督和复活的得胜者要作王掌权一千年。因此,启示录十二章的男孩子,既不是指个人的主耶稣,也不是指与祂分开的得胜者,乃是指主耶稣连同得胜者。基督自己是头一位得胜者(三21)。祂这位领头的得胜者,乃是众得胜者的元首、中心、实际、生命和本质。在地上属神的人中间,有一部分是刚强的,包括主耶稣和得胜者。因此,男孩子是由主耶稣和祂的得胜者组成的。\n主耶稣是男孩子,却从女人而生。……这件事属灵的意义是说,主耶稣是从信靠神的源头而生。……男孩子的源头是女人,不是男人。……男孩子是信靠神、倚靠神之女人的后裔。主耶稣就是从这样的源头而出的后裔。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/7_h_2.htm', 'title': '第七周'}),
 Document(page_content='信息选读\n撒迦利亚四章十二节说到……枝子“流出金”。这里的“金”是指油。油和金乃是一。油是指那灵,那灵乃是神。不仅如此,按预表,金表征神。那充满油碗的金乃是那灵,那灵就是神;神是由金所表征的。我们将这事应用到今天的经历时,就看见从我们里面流出来的那灵就是神,而神就是金。因此,我们将基督供应给别人,用油供应他们的时候,实际上就是用神供应他们。神从我们流出来,流到他们里面。我们都该是橄榄树,从我们自己里面流出神来,流到别人里面(撒迦利亚书生命读经,四一三至四一四页)。\n在出埃及记,灯台是基督作神的具体化身;在新约末了,灯台是众召会作三一神具体化身的繁增。……这灯台只有两个基本元素—金和油。金是具体的形状,油是燃烧的元素。当这二者放在一起,就有灯台照耀,在神的三一里彰显祂,有父的性情和素质、子的形像和样子以及灵的彰显。……撒迦利亚四章十二节告诉我们,灯台的油乃是金油。……召会作为灯台,乃是三一神扎实的具体化身,有七倍的灵作为油。事实上,油的素质就是金的元素。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/4_h_6.htm', 'title': '第四周'}),
 Document(page_content='自隐的神默默却强有力地在我们里面运行\n自隐的神默默却强有力地在我们里面运行(腓二13)。这是在我们与主的关系中,一件非常个人的事。“默默”指明不只是隐藏的,更是安静的,甚至是沉默的。我们通常不会将“安静”和“沉默”这二辞,联于有活力的行动。但神的确是默默却强有力地在我们里面运行。神之所以能强有力地运行,指明我们所是的某些部分被主征服、对付、变化了。主在这个内里的争战中征服了我们,祂正在强有力地摸着我们内里核心的部分。这也就是祂对我们美妙的照顾。祂知道我们愿意作敞开的器皿。当我们愿意对祂说,“主啊,我不知道自己的光景如何,也不知道自己需要什么;但是你知道。无论你想要到哪里,摸着什么,求你自己来作。”祂就会进到我们的深处,以一种隐藏的方式来对付那些抵触祂的事物,并以包罗万有的基督来顶替。你自己可能不会察觉,但别人会感觉得到。最近我听见一位中年姊妹在聚会中简短的说话,我里面满了感谢和敬拜。她自己也许没有察觉,但基督从她照耀出来了。隐藏的神在她里面作工,使基督在她里面长大并扩展。这位隐藏的神也正在我们每一位里面默默地作工。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/12_ts.htm', 'title': '第十二篇'}),
 Document(page_content='信息选读\n当〔主的〕恢复是圣别的,我们就会看见主的祝福。在一些地方祝福受到拦阻,原因乃是因着背景而引起的混杂。我们曾多次被定罪,说我们不邀请别人来我们的聚会中说话。我们不是骄傲,但我们的确谨慎。……已过我们曾经试过,却只引起麻烦;所以我们学了功课。这不是说我们狭窄,乃是说,这个恢复是如此纯净、单纯、圣别。我们的确需要以斯拉来作洁净的工作。主不喜欢任何的混杂。在主的创造里,凡物“各从其类”。……我们需要纯净、严谨、单纯并归从我们的种类!我们若是公会,就该单单是公会。我们若是自由团体,就该单单是自由团体。我们不该说我们是别的。我们若是地方召会,就该单单是地方召会。我们必须如此单纯、单一、纯净,真正归从我们的种类。我们必须是绝对的。主从不尊重任何的混杂,必须是各从其类。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_h_1.htm', 'title': '第六周'}),
 Document(page_content='保罗在以弗所六章十二节也提到“诸天界里那邪恶的属灵势力”。这里的诸天界,指空中(二2)。撒但和他邪恶的属灵势力是在空中;但我们是坐在第三层天上,超过他们(6)。打仗的时候,凌驾仇敌之上的地位,在战略上是非常重要的。撒但和他邪恶的势力是在我们之下,他们注定是要被击败的。\n我们的争战不是抵挡人,乃是抵挡邪灵,就是诸天界里的属灵势力。背叛的天使是撒但国度里的邪灵。因此,召会和撒但之间的争战,乃是我们这些爱主并在祂召会中的人,抵挡诸天界里邪恶势力的争战。表面看是血肉之人破坏召会,实际上是撒但和他邪恶的天使在那些造成破坏的人背后作工。所以,我们必须争战,抵挡这些属灵的势力(以弗所书生命读经,六四二至六四三页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/9_h_4.htm', 'title': '第九周'}),
 Document(page_content='第二周\u3000周二\n晨兴喂养\n代上十六8\u3000你们要称谢耶和华,呼求祂的名,在万民中传扬祂的作为。\n出三14\u3000神对摩西说,我是那我是;又说,你要对以色列人这样说,那我是差我到你们这里来。\n神是普通的名字,耶和华是亲近的名字。神是指着神的能力说的,耶和华是指着神的爱心说的。神是指着创造方面说的,耶和华是指着神的亲近说的。创世记一章没有耶和华。因为是讲关乎创造方面的事,就是一章里提到人,也是关乎创造方面、能力方面的。二章是神和人亲密,有了关系,所以说耶和华神。……这……证明二章的耶和华,就是一章里的神。耶和华神不只是有能力的,也是和人亲近的(倪柝声文集第一辑第九册,六四页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_2.htm', 'title': '第二周'}),
 Document(page_content='对付灵并不是对付灵的本身,乃是对付灵的经过,也就是对付我们的存心、动机、目的、用意等等。我们每有一个行动,或者要说一句话,不只要问对不对,好不好,还要追查里面的存心清洁么?动机单纯么?目的专为着神么?有什么自私的用意么?有我们自己的倾向么?(李常受文集一九五三年第三册,六一四至六一六、六一九页)。\n信息选读\n我们……还要进一步的,把一切不好的存心,不该有的用意,不单纯的倾向,不正当的意志,有搀杂的情感等等,也都对付干净,然后灵才不只能出来,并且出来了,还能是正直的、纯净的。……对付灵,乃是重在对付我们里面不纯的存心、动机等杂质;而对付良心,乃是重在对付良心对那些杂质的感觉。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_h_2.htm', 'title': '第六周'}),
 Document(page_content='我们所要注意的是第三—我们怎样把神的旨意回头祷告神。……一切有价值的祷告都是回头的。如果我们的祷告只是为要成功我们所打算、所盼望的,这在属灵的世界中是没有多大价值的。必须是从神起头,我们响应,这才是有价值的祷告。神的工作是被这样的祷告所支配的。多少事,神愿意作,但是因为神的子民不祷告的缘故,祂宁可不作。神必须等人同意以后祂才去作,这是神作工的一个大原则,是圣经中最要紧的原则之一。\n当神创造人的时候,就给人有一个自由意志。这样,在宇宙之中就有了三个不同的意志:一个是神的意志,一个是仇敌撒但的意志,一个就是人的意志。按着人的想法,神为什么不在一分钟之内把撒但消灭了。但是神没有这样作。神要与人合起来去对付撒但。神有神的意志,撒但有撒但的意志,人也有人的意志。神就是要得着人的意志与祂合起来。……神不单独作,神要人与祂合作。这就是召会在地上的责任。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/2_h_5.htm', 'title': '第二周'}),
 Document(page_content='撒迦利亚九章九节……启示基督将要公义地带着给我们的救恩而来,并且祂要骑着驴,甚至骑着驴驹而来。这一节在四福音,在耶稣基督末次进入耶路撒冷时得了应验。祂来作王,乃是卑微的王、降卑的王,不是骑着骏马,乃是骑着驴驹(撒迦利亚书生命读经,四五五、四四○页)。\n信息选读\n撒迦利亚十一章十二至十三节启示,弥赛亚这位以色列合式的牧人被憎嫌、攻击、弃绝,并以三十锭银子,就是以一个奴仆的价值(出二一32)被卖。这里所预言的,在福音书里得着应验。主耶稣在罗马帝国统治的时候被卖,又为罗马的官长所审判。……撒迦利亚十一章十二节说,“我对他们说,你们若以为美,就给我工价;……于是他们称了三十锭银子作为我的工价。”这清楚指明基督被憎嫌、攻击、弃绝并被卖。我们若要明白这……经文,并要知道谁给了银子,谁将银子丢在耶和华的殿中(13),就需要研读四福音书。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_2.htm', 'title': '第一周'}),
 Document(page_content='“战兢”与“不忠信”\n我要强调两个辞。第一个辞是“战兢”。以赛亚六十六章一至二节说,“耶和华如此说,天是我的座位,地是我的脚凳;你们要在哪里为我建造殿宇?哪里是我安息的地方?……但我所看顾的,就是灵里贫穷痛悔、因我话战兢的人。”通常没有太多人留意到“战兢”这辞。我们多数时候强调要享受主的话,要吃主的话。的确,我们要恢复吃主的话。然而,圣经也告诉我们要惧怕神的话,因主的话战兢。我们来到主的话前,应当有一种郑重、认真的态度,甚至带着敬畏来接受主的话。我们要在主的话前谦卑自己。我们的回应,应当能配得上主的话。\n原谅我说,现今在神的子民中间,有一种错误的思想,以为圣经里有些话只是为着古时,今天已经不合时宜。我要告诉圣徒们:神的话是永远的。我们需要享受,我们需要吃,但我们也需要重看神的话,敬重神的话,我们要对主的话举起手说阿们,正如诗篇一百一十九篇四十八节所说的:“我要向你的诫命举手。”我们需要因主的话战兢。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/6_ts.htm', 'title': '第六篇'}),
 Document(page_content='请记得,每一位圣徒都是一个“小新耶路撒冷”。这意思是,在我们全人的中心,该有神和羔羊的宝座。我们要如何行事或生活,不该凭自己作决定,也不必凭自己作决定,因为在我们里面有宝座。我们在日常生活中该操练自己,在每件事上服从里面的宝座。启示录二十二章一节说,“城内街道当中一道生命水的河,明亮如水晶,从神和羔羊的宝座流出来。”如果我们在宝座的管制之下,就会得着生命水河的滋润和供应。我们如果拒绝宝座的管制,这道生命水的流就会停止。相信我们都曾有这样的经历,因为我们每一个人都是一个小新耶路撒冷。二节说,“在河这边与那边有生命树。”这宝座在我们全人的中心该是得胜的,然后生命水就会从宝座流出来供应我们,并将生命树带给我们,终日滋养我们。圣城的街道是纯金(二一21),金象征神圣的性情。有时我们会发觉里面生命的供应停止了,这是因为我们没有活在神圣的性情里。在新耶路撒冷里,只有一条纯金的街道。我们应该行走在其中,以神圣的性情为我们的道路。这神圣的性情是在我们的灵里,并且要从我们的灵往外扩展到我们全人的三部分。神圣的性情里有一种自然而然的本能,使我们摸到世俗的、不圣别的事物时,会觉得不对劲;神圣的性情会拒绝这些事物。另一面,我们若走在', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/11_ts.htm', 'title': '第十一篇'}),
 Document(page_content='第一周\u3000周六\n晨兴喂养\n亚十二1\u3000耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说。\n十8\u3000我要向他们发哨声,聚集他们,因我已经救赎他们;他们的人数必增多,如从前增多一样。\n诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一。何等奇妙,在旧约这卷揭示基督与人类历史和政治息息相关的书里,有这样的一节〔亚十二1〕。这指明在神的经纶里,神计划要使基督作祂在地上行动的中心与普及。祂是神,几千年来,在一个接一个的世代中,一直掌管全人类,管理世界的局势。为使祂所拣选的人能关心祂这位创造主并救赎主,祂需要为人创造一个接受的器官,使人能接受神计划里之基督一切的所是。基督是奇妙的,但我们若没有灵,怎能接受祂?……我们若忽略我们人的灵,就没有路可以接触神了(撒迦利亚书生命读经,四五六页)。\n信息选读', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_h_6.htm', 'title': '第一周'}),
 Document(page_content='撒迦利亚十二章一节说,“耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说”\n撒迦利亚十二章一节说,“耶和华论以色列之话语的默示。铺张诸天、建立地基、造人里面之灵的耶和华说。”这里所说的,乃是关系到人类历史中的神圣历史。\n神在祂的创造里,造了三样极其关键、同等重要的东西—诸天、地和人的灵;诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一\n神在祂的创造里,造了三样极其关键、同等重要的东西—诸天、地和人的灵。诸天是为着地,地是为着人,神给人造了灵,使人能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一(1)。神给我们造了一个灵。因为祂是灵,如今我们能用我们的灵质实祂。我们能接触神,接受神,敬拜神,活神,为神完成神的定旨,并与神成为一。\n人里面的中央政府并最重要的部分应当是他的灵;一个受他的灵管治并支配的人就是属灵的人', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/1_ts.htm', 'title': '第一篇'}),
 Document(page_content='五十二年过去了,至今我一点也不懊悔。在这五十二年中,我看见故事一再重演,人来了又去了,一幕又一幕。从台湾岛上的工作开始至今,三十几年中有几次重大的事情发生,甚至我带得救、一手造就出来的弟兄,也离开了主的恢复。异象不变,但人会变,跟从人的也会变。所以我愿语重心长地劝勉诸位:我蒙主怜悯,今天能在这里,把这个异象带给你们;我乃是盼望你们跟随的,不是我这个人,而是我蒙主怜悯所给你们看见的这异象。\n我只告诉你们一个事实,是主怜悯我,启示给我看见异象。所以我劝你们,不要跟随我,乃要跟随我蒙主怜悯,承继倪弟兄和历代主的仆人所留下,传承给你们看见的这个异象。这实在是从亚当头一幕的异象,直到新耶路撒冷末了一幕的异象(五一至五四页)。\n在这段话里我们实在看见主仆人的纯洁;他不要我们跟随他这个人,乃要我们跟随时代的异象。我们的“清明上河图”是从亚当和生命树开始,一路延展到新耶路撒冷。我们需要看见整幅图画,这异象就是主恢复里的领导。当你有了这样宽广的异象,你还能到哪里去?这异象约束我们生活的每一面,包括我们的事奉、行动、家庭生活和召会生活。', metadata={'source': '_morning/htm/ailingmusheng.ren/7/2022djth/10_ts.htm', 'title': '第十篇'})]

Mock OpenAI

In [ ]:
import json, os
from revChatGPT.V1 import Chatbot, configure

# open the JSON file and read the conversation_id
with open(os.path.expanduser('~/.config/revChatGPT/config.json'), 'r') as f:
    conversation_id = json.load(f).get('conversation_id', None)

bot = Chatbot(
    config = configure(),
    conversation_id = conversation_id,
    lazy_loading = True
)
In [ ]:
class attrdict(dict):
    def __getattr__(self, attr):
        return self.get(attr)

def attributize(obj):
    '''Add attributes to a dictionary and its sub-dictionaries.'''
    if isinstance(obj, dict):
        for key in obj:
            obj[key] = attributize(obj[key])
        return attrdict(obj)
    if isinstance(obj, list):
        return [attributize(item) for item in obj]
    return obj

def delta(prompt):
    res = ''
    for response in bot.ask(prompt):
        yield attributize({
            'choices': [
                {
                    'index': 0,
                    'delta': {
                        'content': response['message'][len(res):],
                    }
                }
            ],
        })
        res = response['message']

def mock_create(*args, **kwargs):
    summarized_prompt = ''
    for message in kwargs['messages']:
        summarized_prompt += f"{message['role']}:\n\n{message['content']}\n\n\n"
    summarized_prompt.strip()

    if kwargs.get('stream', False):
        return delta(summarized_prompt)

    for response in bot.ask(summarized_prompt):
        pass
    return attributize({
        'choices': [
            {
                'finish_reason': 'stop',
                'index': 0,
                'message': {
                    'content': response['message'],
                    'role': 'assistant',
                }
            }
        ],
    })
In [ ]:
import openai, pytest
In [ ]:
@pytest.fixture
def mock_openai(monkeypatch):
    monkeypatch.setattr(openai.ChatCompletion, 'create', mock_create)

QA with Similarity Searching

In [ ]:
from langchain.prompts import PromptTemplate

CONDENSE_QUESTION_PROMPT = PromptTemplate(
    input_variables=['chat_history', 'question'],
    output_parser=None, partial_variables={},
    template='给定以下对话和后续问题,请重新表述后续问题以成为一个独立问题。\n\n聊天记录:\n{chat_history}\n后续问题:{question}\n独立问题:',
    template_format='f-string',
    validate_template=True
)

QA_PROMPT = PromptTemplate(
    input_variables=['context', 'question'],
    output_parser=None, partial_variables={},
    template='使用下面的背景信息回答最后的问题。如果您不知道答案,请直接说您不知道,不要试图编造一个答案。\n\n背景信息:\n{context}\n\n问题:{question}\n有用的答案:',
    template_format='f-string',
    validate_template=True
)
In [ ]:
from langchain.chains.llm import LLMChain
from langchain.callbacks.base import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain.chains.question_answering import load_qa_chain
from langchain.vectorstores.base import VectorStore
from langchain.chains import ConversationalRetrievalChain
from langchain.chat_models import ChatOpenAI

# Callback function to stream answers to stdout.
manager = CallbackManager([StreamingStdOutCallbackHandler()])

streaming_llm = ChatOpenAI(streaming=True, callback_manager=manager, verbose=True, temperature=0)
question_gen_llm = ChatOpenAI(temperature=0, verbose=True, callback_manager=manager)
# Prompt to generate independent questions by incorporating chat history and a new question.
question_generator = LLMChain(llm=question_gen_llm, prompt=CONDENSE_QUESTION_PROMPT)
# Pass in documents and a standalone prompt to answer questions.
doc_chain = load_qa_chain(streaming_llm, chain_type='stuff', prompt=QA_PROMPT)
# Generate prompts from embedding model.
qa = ConversationalRetrievalChain(retriever=vectorstore.as_retriever(), combine_docs_chain=doc_chain, question_generator=question_generator)
In [ ]:
question = '七倍加强的灵是什么?'
In [ ]:
answer = {}
In [ ]:
def test_qa(mock_openai):
    global answer
    answer = qa({'question': question, 'chat_history': []})
    print('\n')
    assert isinstance(answer, dict)
In [ ]:
from ipymock import do
In [ ]:
do(
    mock_openai=mock_openai,
    test_qa=test_qa,
)
=> no.0  ::tools::test_qa  setup  passed

很抱歉,我无法回答这个问题。在所提供的背景信息中没有提及“七倍加强的灵”,也没有足够的上下文信息可以确定它指的是什么。如果您有更多的背景信息或上下文,请提供给我,我将尽力回答您的问题。

=> no.0  ::tools::test_qa  runtest  passed

In [ ]:
answer
Out[ ]:
{'question': '七倍加强的灵是什么?',
 'chat_history': [],
 'answer': '很抱歉,我无法回答这个问题。在所提供的背景信息中没有提及“七倍加强的灵”,也没有足够的上下文信息可以确定它指的是什么。如果您有更多的背景信息或上下文,请提供给我,我将尽力回答您的问题。'}

Instructor Transformer

In [ ]:
from InstructorEmbedding import INSTRUCTOR
model = INSTRUCTOR('hkunlp/instructor-large')
load INSTRUCTOR_Transformer
max_seq_length  512

Faiss Indexer

In [ ]:
import faiss
index = faiss.IndexFlatL2(768)

Embedding and Indexing

In [ ]:
sentences = None
In [ ]:
num_words = 20
In [ ]:
instruction = 'Represent the query for retrieval:'
In [ ]:
instruction = '表示用于检索的查询:'
In [ ]:
def index_embeddings(text):
    global sentences

    # words = extra_text.split(' ')
    # sentences = [words[i: i+num_words] for i in range(0, len(words), num_words)]
    # sentences = [' '.join(word_list) for word_list in sentences]
    import re
    sentences = []
    for i, sentence in enumerate(re.split(r'\n+', text.replace('。', '。\n'))):
        sentence = sentence.strip()
        if sentence != '':
            sentences.append(sentence)

    print('\nNumber of Sentences:', len(sentences))
    # print(sentences)

    print('\nBuilding the index...')
    embeddings = model.encode([[instruction, i] for i in sentences])
    index.add(embeddings)
    print('\nindex.ntotal:', index.ntotal)
In [ ]:
index_embeddings(''.join([raw_document.page_content for raw_document in raw_documents]))
Number of Sentences: 13960

Building the index...

index.ntotal: 13960

Faiss Search

In [ ]:
k = 20
In [ ]:
def retrieve_extra_info(text):
    print('\nRetrieving extra information...')
    xq = model.encode([[instruction, text]])
    D, I = index.search(xq, k)
    print(D[0])
    print(I[0])
    extra_info = ''
    for i in I[0]:
        try:
            extra_info += sentences[i] + '\n'
        except:
            print(len(sentences), i)
    print('\nextra_info:', extra_info)
    return extra_info
In [ ]:
retrieve_extra_info('你知道什么?')
retrieve_extra_info('第八周讲了什么?')
retrieve_extra_info('七倍加强的灵是什么?')
Retrieving extra information...
[5.4066086e-14 1.1163864e-02 1.1163864e-02 1.1163864e-02 1.1163864e-02
 1.1163864e-02 1.1163864e-02 1.1163864e-02 1.1163864e-02 3.0758277e-02
 4.8185803e-02 4.8678309e-02 4.8678320e-02 4.8678324e-02 4.8678324e-02
 4.8678324e-02 4.8678324e-02 4.9394563e-02 4.9731985e-02 5.5326112e-02]
[ 5745    20  2756  4925  6154  9841  9866 10484 12664  4078  2048 13937
  6191   159  2695  7559 11518 12666  9761  2050]

extra_info: 那时你为你的大名要怎样行呢?
谁经历最大量的变化?就是向主完全敞开的人。
你会被这样的事搅扰么?但愿不会。
你晓得误会是从哪里来的么?它的根源常常是不纯净。
在宇宙中需要得满足的是谁呢?就是神自己。
但为什么万国所羡慕的这一位还没有回来?因为召会还没有建造起来。
我们难道不想要有神的荣耀么?得着神荣耀充满的路就是建造祂的殿。
岂不知你们有耶稣基督在你们里面么?除非你们是经不起试验的。
我们是否愿意学习有这样的祷告?这是主心头的渴望。
”你们在经上从来没有念过么?
神要如何得着祂所渴望的彰显呢?这需要神子民有属天神圣的构成和活出;这个构成乃是从主的话并从那灵而来。
你知道这些东西能借着祷读主话而杀死么?我们越接受主的话连同其杀死的能力,我们的骄傲以及里面一切消极的元素就越被治死。
我们能完全为着神么?因着我们爱主,我们会立志要绝对为神而活。
摩西有说过这话么?没有,乃是撒迦利亚第一个说的。
是谁在拦阻人接待弟兄呢?乃是带领的人在拦阻,而不是一般的圣徒。
你是绝对地为着神么?一方面说是为着神,另一方面说并不为着神。
为什么是一个谜?就是因为这些都是出于神,而神却隐藏起来了。
我要问主恢复中每一位同工、每一位全时间服事者、每一位长老、每一位负责弟兄:你是否愿意学习有这样的祷告?我们要祷告,求主给我们一条路来学习这样祷告。
但我要问弟兄姊妹:我们在这里是为着什么?我们在这里有什么负担?我们在这里是为着什么而活?我们乃是为着神殿的建造。
教导什么?……他必须能一卷一卷地教导圣经。


Retrieving extra information...
[5.4066086e-14 1.1163864e-02 1.1163864e-02 1.1163864e-02 1.1163864e-02
 1.1163864e-02 1.1163864e-02 1.1163864e-02 1.1163864e-02 3.0758277e-02
 4.8185803e-02 4.8678309e-02 4.8678320e-02 4.8678324e-02 4.8678324e-02
 4.8678324e-02 4.8678324e-02 4.9394563e-02 4.9731985e-02 5.5326112e-02]
[ 5745    20  2756  4925  6154  9841  9866 10484 12664  4078  2048 13937
  6191   159  2695  7559 11518 12666  9761  2050]

extra_info: 那时你为你的大名要怎样行呢?
谁经历最大量的变化?就是向主完全敞开的人。
你会被这样的事搅扰么?但愿不会。
你晓得误会是从哪里来的么?它的根源常常是不纯净。
在宇宙中需要得满足的是谁呢?就是神自己。
但为什么万国所羡慕的这一位还没有回来?因为召会还没有建造起来。
我们难道不想要有神的荣耀么?得着神荣耀充满的路就是建造祂的殿。
岂不知你们有耶稣基督在你们里面么?除非你们是经不起试验的。
我们是否愿意学习有这样的祷告?这是主心头的渴望。
”你们在经上从来没有念过么?
神要如何得着祂所渴望的彰显呢?这需要神子民有属天神圣的构成和活出;这个构成乃是从主的话并从那灵而来。
你知道这些东西能借着祷读主话而杀死么?我们越接受主的话连同其杀死的能力,我们的骄傲以及里面一切消极的元素就越被治死。
我们能完全为着神么?因着我们爱主,我们会立志要绝对为神而活。
摩西有说过这话么?没有,乃是撒迦利亚第一个说的。
是谁在拦阻人接待弟兄呢?乃是带领的人在拦阻,而不是一般的圣徒。
你是绝对地为着神么?一方面说是为着神,另一方面说并不为着神。
为什么是一个谜?就是因为这些都是出于神,而神却隐藏起来了。
我要问主恢复中每一位同工、每一位全时间服事者、每一位长老、每一位负责弟兄:你是否愿意学习有这样的祷告?我们要祷告,求主给我们一条路来学习这样祷告。
但我要问弟兄姊妹:我们在这里是为着什么?我们在这里有什么负担?我们在这里是为着什么而活?我们乃是为着神殿的建造。
教导什么?……他必须能一卷一卷地教导圣经。


Retrieving extra information...
[5.4066086e-14 1.1163864e-02 1.1163864e-02 1.1163864e-02 1.1163864e-02
 1.1163864e-02 1.1163864e-02 1.1163864e-02 1.1163864e-02 3.0758277e-02
 4.8185803e-02 4.8678309e-02 4.8678320e-02 4.8678324e-02 4.8678324e-02
 4.8678324e-02 4.8678324e-02 4.9394563e-02 4.9731985e-02 5.5326112e-02]
[ 5745    20  2756  4925  6154  9841  9866 10484 12664  4078  2048 13937
  6191   159  2695  7559 11518 12666  9761  2050]

extra_info: 那时你为你的大名要怎样行呢?
谁经历最大量的变化?就是向主完全敞开的人。
你会被这样的事搅扰么?但愿不会。
你晓得误会是从哪里来的么?它的根源常常是不纯净。
在宇宙中需要得满足的是谁呢?就是神自己。
但为什么万国所羡慕的这一位还没有回来?因为召会还没有建造起来。
我们难道不想要有神的荣耀么?得着神荣耀充满的路就是建造祂的殿。
岂不知你们有耶稣基督在你们里面么?除非你们是经不起试验的。
我们是否愿意学习有这样的祷告?这是主心头的渴望。
”你们在经上从来没有念过么?
神要如何得着祂所渴望的彰显呢?这需要神子民有属天神圣的构成和活出;这个构成乃是从主的话并从那灵而来。
你知道这些东西能借着祷读主话而杀死么?我们越接受主的话连同其杀死的能力,我们的骄傲以及里面一切消极的元素就越被治死。
我们能完全为着神么?因着我们爱主,我们会立志要绝对为神而活。
摩西有说过这话么?没有,乃是撒迦利亚第一个说的。
是谁在拦阻人接待弟兄呢?乃是带领的人在拦阻,而不是一般的圣徒。
你是绝对地为着神么?一方面说是为着神,另一方面说并不为着神。
为什么是一个谜?就是因为这些都是出于神,而神却隐藏起来了。
我要问主恢复中每一位同工、每一位全时间服事者、每一位长老、每一位负责弟兄:你是否愿意学习有这样的祷告?我们要祷告,求主给我们一条路来学习这样祷告。
但我要问弟兄姊妹:我们在这里是为着什么?我们在这里有什么负担?我们在这里是为着什么而活?我们乃是为着神殿的建造。
教导什么?……他必须能一卷一卷地教导圣经。

Out[ ]:
'那时你为你的大名要怎样行呢?\n谁经历最大量的变化?就是向主完全敞开的人。\n你会被这样的事搅扰么?但愿不会。\n你晓得误会是从哪里来的么?它的根源常常是不纯净。\n在宇宙中需要得满足的是谁呢?就是神自己。\n但为什么万国所羡慕的这一位还没有回来?因为召会还没有建造起来。\n我们难道不想要有神的荣耀么?得着神荣耀充满的路就是建造祂的殿。\n岂不知你们有耶稣基督在你们里面么?除非你们是经不起试验的。\n我们是否愿意学习有这样的祷告?这是主心头的渴望。\n”你们在经上从来没有念过么?\n神要如何得着祂所渴望的彰显呢?这需要神子民有属天神圣的构成和活出;这个构成乃是从主的话并从那灵而来。\n你知道这些东西能借着祷读主话而杀死么?我们越接受主的话连同其杀死的能力,我们的骄傲以及里面一切消极的元素就越被治死。\n我们能完全为着神么?因着我们爱主,我们会立志要绝对为神而活。\n摩西有说过这话么?没有,乃是撒迦利亚第一个说的。\n是谁在拦阻人接待弟兄呢?乃是带领的人在拦阻,而不是一般的圣徒。\n你是绝对地为着神么?一方面说是为着神,另一方面说并不为着神。\n为什么是一个谜?就是因为这些都是出于神,而神却隐藏起来了。\n我要问主恢复中每一位同工、每一位全时间服事者、每一位长老、每一位负责弟兄:你是否愿意学习有这样的祷告?我们要祷告,求主给我们一条路来学习这样祷告。\n但我要问弟兄姊妹:我们在这里是为着什么?我们在这里有什么负担?我们在这里是为着什么而活?我们乃是为着神殿的建造。\n教导什么?……他必须能一卷一卷地教导圣经。\n'

Chat with PDF

In [ ]:
import logging
logging.getLogger().setLevel(logging.CRITICAL)
In [ ]:
messages_in_english = [{
    'role': 'system', 'content': 'You are an AI agent that summarizes chat in less than three setences.'
}]
In [ ]:
messages_in_chinese = [{
    'role': '系统', 'content': '你是一个 AI 代理。请用中文在三句话之内概括聊天内容。'
}]
In [ ]:
chats_in_english = [{
    'role': 'system', 'content': 'You are an AI assistant providing helpful advice.\n' + \
    'You are given the following extracted parts of a long document and a question.\n' + \
    'Provide a conversational answer based on the context provided.\n' + \
    'You should only provide hyperlinks that reference the context below.\n' + \
    'Do NOT make up hyperlinks.\n' + \
    'If you can\'t find the answer in the context below, use your prior knowledge,\n' + \
    'but in most of the cases the answer will be in the context.\n' + \
    # 'If the question is not related to the context, politely respond that you are tuned to only answer questions that are related to the context.\n' + \
    'Answer in Markdown format.\n'
}]
In [ ]:
chats_in_chinese = [{
    'role': '系统', 'content': '你是一个提供有用建议的 AI 助手。\n' + \
    '你被提供了一份长文档的一部分(额外信息)和一个问题。\n' + \
    '请根据我所提供的文本提供会话式的回答。\n' + \
    '你只应该提供与下面的文本相关的超链接。\n' + \
    '**不要**编造超链接。\n' + \
    '如果在下面的文本中找不到答案,可以使用你先前所知道的知识,\n' + \
    '但在大多数情况下,答案是在文本中的。\n' + \
    # '如果问题与上下文不相关,请礼貌地回复您只回答与上下文相关的问题。\n' + \
    '请用中文以 Markdown 格式回答。\n'
}]
In [ ]:
%%bash
pip install PyPDF2
Successfully installed PyPDF2-3.0.1
In [ ]:
import PyPDF2

def extract_text(pdf_file):
    '''Extract text from a PDF file.'''
    with open(pdf_file.name, 'rb') as f:
        return '\n\n'.join([page.extract_text() for page in PyPDF2.PdfReader(f).pages])
In [ ]:
def build_the_bot(pdf_file, openai_key=None):
    '''split sentences in chinese'''
    openai.api_key = openai_key
    print('OpenAI Key:', openai_key)

    extra_text = extract_text(pdf_file)
    print('\nText Length:', len(extra_text))

    index_embeddings(extra_text)

    return extra_text
In [ ]:
import openai
In [ ]:
def chat(chat_history, user_input):
    '''chat in chinese'''
    global sentences

    print('\nmessages_in_chinese:', messages_in_chinese)
    # messages_in_english.append({'role': 'user', 'content': 'Question:\n' + user_input})
    # print('\nmessages_in_english:', messages_in_english)

    print('\nSummarizing the chat history...')

    completion = openai.ChatCompletion.create(
        model = 'gpt-3.5-turbo',
        temperature = 0,
        messages = messages_in_chinese
    )

    summary = completion.choices[0].message.content
    print(f'\nSummarized Histoy: {summary}')

    extra_info = retrieve_extra_info(summary + '\n\n' + '问题:' + user_input)

    chats_in_chinese.append({'role': '用户', 'content': '额外信息:\n' + extra_info + '\n\n' + '问题:' + user_input})

    print('\nchats_in_chinese:', chats_in_chinese)
    completion = openai.ChatCompletion.create(
        model = 'gpt-3.5-turbo',
        temperature = 0,
        messages = chats_in_chinese[:1] + chats_in_chinese[-1:]
    )

    chat_output = completion.choices[0].message.content
    print(f'\nChatGPT: {chat_output}')

    # messages_in_chinese.append({'role': '用户', 'content': user_input})
    # messages_in_chinese.append({'role': '助手', 'content': chat_output})
    yield chat_history + [(user_input, chat_output)]
In [ ]:
%%bash
pip install gradio
Successfully installed altair-4.2.2 contourpy-1.0.7 cycler-0.11.0 ffmpy-0.3.0 fonttools-4.39.3 fsspec-2023.4.0 gradio-3.26.0 gradio-client-0.1.2 kiwisolver-1.4.4 linkify-it-py-2.0.0 matplotlib-3.7.1 mdit-py-plugins-0.3.3 orjson-3.8.10 pydub-0.25.1 pyparsing-3.0.9 python-multipart-0.0.6 semantic-version-2.10.0 toolz-0.12.0 uc-micro-py-1.0.1
In [ ]:
import gradio
In [ ]:
def test_demo(mock_openai):
    with gradio.Blocks() as demo:
        gradio.Markdown('Chat with a PDF document')
        with gradio.Tab('Select PDF'):
            pdf = gradio.File()
            openai_key = gradio.Textbox(label='OpenAI API Key',)
            text_output = gradio.Textbox(label='PDF content')
            text_button = gradio.Button('Build the Bot!!!')
            text_button.click(build_the_bot, [pdf, openai_key], text_output)
        with gradio.Tab('Knowledge Bot'):
            chatbot = gradio.Chatbot()
            message = gradio.Textbox('What is this document about?')
            message.submit(chat, [chatbot, message], chatbot)
    demo.queue().launch(debug = True)
    assert True
    demo.close()
In [ ]:
do(
    mock_openai=mock_openai,
    test_demo=test_demo,
)
=> no.0  ::tools::test_demo  setup  passed

Running on local URL:  http://127.0.0.1:7860

To create a public link, set `share=True` in `launch()`.
OpenAI Key: 

Text Length: 4047

Number of Sentences: 157
['头一次的爱', '当头一次遇见了你,', '我的心充满欢喜。', '阿利路亚,喜乐满溢,', '主耶穌充满在我里。', '头一次的爱,', '最甘甜的爱,', '耶穌,耶穌,我的爱。', '超过一切真实的爱,', '竟然临及我;', '甘甜的爱,最真实的爱,', '耶穌,耶穌,我的爱。', '这孩子将来如何 ——美好的家庭时光,高品的亲子关系', '第二课  父母与儿女爱的关系', '读经:帖前二 7~8,太十九 14,罗五 5,7~8,约壹四 7~12,提后一 5,三 15', '帖前二 7~8 只在你们中间为人温和,如同乳母顾惜自己的孩子。', '我们这样切慕你们,不但乐意将神的福', '音分给你们,连自己的性命也愿意分给你们,因你们是我们所爱的。', '太十九 14 耶稣却说,让小孩子到我这里来,不要禁止他们,因为诸天之国正是这等人的。', '罗五 5 盼望不至于蒙羞;因为神的爱已经借着所赐给我们的圣灵,浇灌在我们心里。', '罗五 7~8 为义人死,是少有的;为仁人死,或者有敢作的;惟有基督在我们还作罪人的时候,为我们', '死,神就在此将 祂自己的爱向我们显明了。', '约壹四 7~12  亲爱的,我们应当彼此 相爱,因为爱是出于神的;凡爱弟兄的,都是从神生的,并且认识', '神。', '不爱弟兄的,未曾认识神,因为神就是爱。', '神差 祂的独生子到世上来,使我们借着 祂得', '生并活着,在此神的爱就向我们显明了。', '不是我们爱神,乃是神爱我们,差 祂的儿子,为我', '们的罪作了平息的祭物,在此就是爱了。', '亲爱的,神既是这样爱我们,我们也当彼此相爱。', '从来没有人见过神;我们若彼此相爱,神就住在我们里面, 祂的爱也在我们里面得了成全。', '提后一 5 记得你里面无伪的信心,就是先在你外祖母罗以,和你母亲友尼基里面的,我深信也在你里', '面。', '提后三 15 并且知道你是从小明白圣经 ;这圣经能使你 借着相信基督耶稣,有得救的智慧。', '壹 父母与儿女之间爱的关系乃是父神与祂的子民之间爱之关系的图画 ——约', '壹四7~12:', '一 儿女们将来的情形如何,和他生长的家庭环境大有关系;他们小的时候必须得着爱的', '培养,家庭里必须建立爱的关系 ——帖前二 7~8。', '二 经历来自父母的爱将帮助孩子体会神的爱; 所以, 父母不论多忙, 孩子应该自己来带 。', '三 父母彼此的关系也应是相爱的体现 —— 7节。', '四 父母的爱应该引导孩子有积极的回馈,彼此相爱,并影响他们去关爱别人 ——约壹四', '11。', '五 爱的关系是由高品质(亲子的互动、共同参与、在灵里)并稳定的陪伴培养的。', '贰 圣经中母亲的榜样:', '一 圣经中一位伟大的母亲是摩西的母亲约基别,她为神的子民预备了一位拯救者摩西,', '一位大祭司亚伦,一位女申言者米利暗,并且在他们非常年幼的时候就作在他们身上', '——出二 1~12,六 20,民二六 59。', '二 哈拿的祷告,以及她在爱中的乳养,使神得着一个转移时代的器皿撒母耳 ——撒上一', '10~20,二 18,19。', '三 提摩太的母亲友尼基是一个平凡的女子;但她作为母亲,却是非凡的,因她栽培了一', '个基督的工人 ——提摩太;她传承了无伪的信心,并默默地支持儿子的摆上 ——提后', '一5,三 15。', '叁 我们爱,因为神先爱我们 ——约壹四 19:', '一 父母对儿女的爱是神对人爱的一幅照片,是与生俱来的。', '有神生命的父母,不只有爱', '的愿望,更有爱的能力,因为我们里面神的生命是爱的生命 ——约壹四 8,16。', '二 父母需要操练自己,与神接触,被神的爱充满,被神的喜乐充满,操练用神性调着人', '性的爱爱孩子们 ——提前四 7-8:', '1 我们常常有爱的愿望,却缺少爱的能力;常感到 “立志为善由得我,只是行出来由不', '得我”——参罗七 18。', '2 有相同的爱(腓二 2),不但爱那聪明、漂亮的,也能爱那愚笨、丑陋的。', '“我们的', '神叫祂的日头上升照恶人,也照好人;降雨给义人,也给不义的人 ”(太五 45)。', '父', '母天然的爱常会有偏心。', '3 不会溺爱孩子。', '比如有的父母溺爱孩子,不希望孩子受苦,不让孩子练习做家务,', '怕孩子吃苦,(其实苦难才能培养刚强的意志);怕孩子吃亏,孩子的玩具被拿走', '了妈妈受不了;孩子和同伴吵架了,妈妈想帮孩子吵:爱宴的时候,好吃的东西给', '孩子盛很多,不顾到别人。', '4 不会照着肉体、天然,不会仅仅照着自己的情感爱孩子。', '三 父母对儿女神性调着人性的爱是属灵的爱, 是智慧的爱, 为着孩子生命的成长和成全:', '1 牧养孩子的魂,启迪孩子的灵,作孩子魂的牧人和监督,把孩子引向我们的大牧人,', '我们众人魂的牧人和监督 ——彼前二 25,五 4,来十三 20。', '2 引导孩子敬畏神, 使孩子的行事为人不光是照着律法和规则, 更是照着良心的感觉,', '更是照着对神的感觉(爱神,怕得罪神) ——彼前二 19-20。', '3 引导孩子顾到别人的感觉,知道在神的家中当怎样行 ——提前三 15。', '4 引导孩子,为了顾到别人、牧养别人,宁可放弃自己的权利、宁可吃亏,经历神舍', '己的爱——罗五 7~8。', '四 “主所爱的, 祂必管教 ......只是你们若不受众子所共受的管教,就是私生子,不是儿子', '了”——来十二 6~8。', '肆 父母和孩子的爱的关系满足孩子不同阶段发展的需要:', '一 母爱( 0-3岁):', '1 依恋关系:从出生甚至从怀孕开始。', '是孩子第一个爱的关系,第一个对爱的理解,', '是孩子情商社会性发展的基础,影响孩子将来的幸福 。', '2 母爱的种子是神放到人里面的,但爱的关系的建立是需要后天培养的 。', '3 孩子自己生要自己养。', '一出生就要把孩子抱在怀里 。', '4 在生活中满足孩子的需要(饿了,困了,尿片湿了,无聊了),一来一往生活中建', '立和加强。', '5 当孩子需要得到满足时就会在孩子心中产生基本的信任感。', '孩子不会说话,只能用', '哭声和肢体语言和照顾他的人交流,他的需要得到满足会产生基本能信任感,这帮', '助他们建立积极的人生态度。', '二 父母成为孩子的安全港湾  (两岁以上):', '1 两岁以后,孩子一面独立意识加强,一面确定母亲(他所爱的人)在他的身后;孩', '子时不时回到妈妈这里停一下,再继续探索。', '我们要成为孩子一生的安全港湾;孩', '子遇到难处,遇到问题时能回来找父母交通。', '2 陪孩子一起唱诗歌,讲圣经故事,和孩子谈论幼儿园发生的事情。', '当孩子在家、在', '外遇到难处时,父母和孩子一起讨论、一起交通、一起祷告,一起经历主。', '3 父母带着孩子一起去聚会、探望,一起服事,一起做家务,与孩子及孩子的朋友一', '起运动。', '4 在真实的生活中过丰富多彩,生机勃勃的生活。', '三 父母成为孩子的好朋友,属灵同伴( 6-12岁):', '父母不但要花时间成为孩子的朋友, 还要成为属灵同伴: 和孩子建立读经祷告的生活,', '孩子在家在外遇到难处时家长和孩子一起来讨论,一起经历主 。', '父母与孩子一同过一', '套的生活(服事和生活是一体的)。', '四 成为孩子人生的辅助者、帮助者,成为孩子魂的牧人和监督 ,成为一起经营神事业的', '同伙(12-18岁):', '孩子人生中不同阶段有不同的需要,不同的难处和问题。', '我们不能替他们生活,不能', '替他们做决定,而是照着神来牧养他们;多倾听孩子,与他们表同情,和他们一起祷', '告寻求,一同经历神的大能,甚至神的管教。', '伍 借建立“家庭时光 ”,建立并发展与孩子爱的关系:', '一 “家庭时光 ”的实行指引:', '1 成员:家中所有人,父母、儿女、爷爷、奶奶(外公、外婆);', '2 频率:最好天天,至少每周一次;', '3 时间:周末,周中,晚上,白天都可以;最好每周固定时间;时长: 10-30分钟;', '4 地点:家里,安静的餐厅,海边,户外均可;', '5 内容:呼求主、祷告、唱诗歌,读圣经、背经节,讲故事;话题讨论,生活感悟,', '对主的特别经历等等。', '6 特点:温馨、甜美、有爱、有光(严肃),有神的元素。', '二 “家庭时光 ”的益处:', '1 加强家人爱的关系,增进感情,分赐生命;', '2 促进孩子灵魂体的发展;促进孩子智商、情商、灵商的发展:', 'A  唱诗歌、享受诗歌,有助孩子情商发展;', 'B  话题讨论,有助于孩子分析问题、解决问题能力的培养,应付孩子各阶段成长的需', '要,加强孩子社会性,与人交往的能力;', 'C  读圣经帮助孩子认识神、认识神的旨意、神的性情、神的法则;', 'D  讲圣经故事、 话题讨论, 帮助孩子增加智慧, 培养孩子的语言表达能力, 写作能力,', '发展孩子智商;', 'E  父母的见证及其他圣徒的见证,供应孩子生命,有助于他们属灵生命的长大,预备', '孩子尽生机的功用。', '三 “家庭时光 ”的目的:使我们的家成为生命的园子;成为神的家、神的彰显;成为新', '耶路撒冷的小影。', '作业:', '群组: 0岁以下、 0-12岁父母群、有信仰的妈妈群', '1 分享本堂课的心得,以及收获。', '(字数不限)', '2 建立“家庭时光 ”:(a)已有家庭时光的,请简述你们是如何开始的,并列出时间、地点、内容,', '孩子们反应如何?(建议每次家庭时光有个简要记录)( b)尚未有 “家庭时光 ”的,  请本周开', '始建立,并列出时间、地点。', '3 建立定时为孩子的祷告,请列出祷告时间(个人或夫妇的祷告)。', '4 您有任何问题,欢迎写在下面,之后会有问题解答。', '群组:儿童服事者群', '1 分享本堂课的心得,以及收获。', '(字数不限)', '2 请传输负担,并帮助圣徒建立 “家庭时光 ”,请列出具体的实行过程,时间、地点、内容。', '已有', '建立的,请简述你们是如何开始的,并列出时间、地点、内容,孩子们反应如何?(建议每次', '家庭时光有个简要记录)', '3 建立儿童服事者间的祷告。', '4 您有任何问题,欢迎写在下面,之后会有问题解答。']

Building the index...

index.ntotal: 471

messages_in_chinese: [{'role': '系统', 'content': '你是一个 AI 代理。请用中文在三句话之内概括聊天内容。'}]

Summarizing the chat history...

Summarized Histoy: 用户提供了一段文本片段,但没有明确说明文档的主题。

Retrieving extra information...
[0.22384945 0.22384945 0.22384945 0.22384945 0.22384945 0.22384945
 0.22445944 0.22445944 0.22445944 0.22445944 0.22445944 0.22445944
 0.22445944 0.22445944 0.22445944 0.22445944 0.22445944 0.22445944
 0.22445944 0.22445944]
[ 43  81 200 238 357 395   0   2   4  23  32  63  64  90  94 101 104 109
 124 136]
157 200
157 238
157 357
157 395

extra_info: 贰 圣经中母亲的榜样:
肆 父母和孩子的爱的关系满足孩子不同阶段发展的需要:
头一次的爱
我的心充满欢喜。
主耶穌充满在我里。
神。
面。
父
母天然的爱常会有偏心。
立和加强。
助他们建立积极的人生态度。
当孩子在家、在
起运动。
父母与孩子一同过一
对主的特别经历等等。
孩子尽生机的功用。


chats_in_chinese: [{'role': '系统', 'content': '你是一个提供有用建议的 AI 助手。\n你被提供了一份长文档的一部分(额外信息)和一个问题。\n请根据我所提供的文本提供会话式的回答。\n你只应该提供与下面的文本相关的超链接。\n**不要**编造超链接。\n如果在下面的文本中找不到答案,可以使用你先前所知道的知识,\n但在大多数情况下,答案是在文本中的。\n请用中文以 Markdown 格式回答。\n'}, {'role': '用户', 'content': '额外信息:\n贰 圣经中母亲的榜样:\n肆 父母和孩子的爱的关系满足孩子不同阶段发展的需要:\n头一次的爱\n我的心充满欢喜。\n主耶穌充满在我里。\n神。\n面。\n父\n母天然的爱常会有偏心。\n立和加强。\n助他们建立积极的人生态度。\n当孩子在家、在\n起运动。\n父母与孩子一同过一\n对主的特别经历等等。\n孩子尽生机的功用。\n\n\n问题:What is this document about?'}]

ChatGPT: 这份文档似乎是关于圣经中母亲的榜样和父母如何满足孩子不同阶段发展需要的话题。它提到了头一次的爱、天然的爱可能有偏心、助孩子建立积极人生态度以及与孩子一同度过时刻等内容。

messages_in_chinese: [{'role': '系统', 'content': '你是一个 AI 代理。请用中文在三句话之内概括聊天内容。'}]

Summarizing the chat history...

Summarized Histoy: 用户提供了一段圣经和关于父母与孩子之间爱的关系的信息,但并没有具体提问。

Retrieving extra information...
[0.02490797 0.02490797 0.02490797 0.08932048 0.08932048 0.08932048
 0.08960854 0.08960854 0.08960854 0.09182282 0.09182282 0.09182282
 0.09209618 0.09209618 0.09209618 0.09309858 0.09309858 0.09309858
 0.09309858 0.09309858]
[153 310 467 107 264 421  44 201 358 111 268 425  53 210 367  40  47 197
 204 354]
157 310
157 467
157 264
157 421
157 201
157 358
157 268
157 425
157 210
157 367
157 197
157 204
157 354

extra_info: 建立的,请简述你们是如何开始的,并列出时间、地点、内容,孩子们反应如何?(建议每次
父母不但要花时间成为孩子的朋友, 还要成为属灵同伴: 和孩子建立读经祷告的生活,
一 圣经中一位伟大的母亲是摩西的母亲约基别,她为神的子民预备了一位拯救者摩西,
四 成为孩子人生的辅助者、帮助者,成为孩子魂的牧人和监督 ,成为一起经营神事业的
一 父母对儿女的爱是神对人爱的一幅照片,是与生俱来的。
四 父母的爱应该引导孩子有积极的回馈,彼此相爱,并影响他们去关爱别人 ——约壹四
二 哈拿的祷告,以及她在爱中的乳养,使神得着一个转移时代的器皿撒母耳 ——撒上一


chats_in_chinese: [{'role': '系统', 'content': '你是一个提供有用建议的 AI 助手。\n你被提供了一份长文档的一部分(额外信息)和一个问题。\n请根据我所提供的文本提供会话式的回答。\n你只应该提供与下面的文本相关的超链接。\n**不要**编造超链接。\n如果在下面的文本中找不到答案,可以使用你先前所知道的知识,\n但在大多数情况下,答案是在文本中的。\n请用中文以 Markdown 格式回答。\n'}, {'role': '用户', 'content': '额外信息:\n贰 圣经中母亲的榜样:\n肆 父母和孩子的爱的关系满足孩子不同阶段发展的需要:\n头一次的爱\n我的心充满欢喜。\n主耶穌充满在我里。\n神。\n面。\n父\n母天然的爱常会有偏心。\n立和加强。\n助他们建立积极的人生态度。\n当孩子在家、在\n起运动。\n父母与孩子一同过一\n对主的特别经历等等。\n孩子尽生机的功用。\n\n\n问题:What is this document about?'}, {'role': '用户', 'content': '额外信息:\n建立的,请简述你们是如何开始的,并列出时间、地点、内容,孩子们反应如何?(建议每次\n父母不但要花时间成为孩子的朋友, 还要成为属灵同伴: 和孩子建立读经祷告的生活,\n一 圣经中一位伟大的母亲是摩西的母亲约基别,她为神的子民预备了一位拯救者摩西,\n四 成为孩子人生的辅助者、帮助者,成为孩子魂的牧人和监督 ,成为一起经营神事业的\n一 父母对儿女的爱是神对人爱的一幅照片,是与生俱来的。\n四 父母的爱应该引导孩子有积极的回馈,彼此相爱,并影响他们去关爱别人 ——约壹四\n二 哈拿的祷告,以及她在爱中的乳养,使神得着一个转移时代的器皿撒母耳 ——撒上一\n\n\n问题:这个文档是关于什么的?'}]

ChatGPT: 这份文档似乎是关于父母如何成为孩子的灵性导师和引导他们成长的指南。文中提到了许多圣经中母亲和父亲的榜样,以及父母应该如何满足孩子不同阶段发展的需要。其中包括建立读经祷告的生活,成为孩子魂的牧人和监督,引导孩子有积极的回馈和去关爱别人等。

messages_in_chinese: [{'role': '系统', 'content': '你是一个 AI 代理。请用中文在三句话之内概括聊天内容。'}]

Summarizing the chat history...

Summarized Histoy: 用户询问了一份长文档的主题,并提供了一些额外信息。我使用超链接回答了他们的问题,并提供了相关的信息和文章的概述。

Retrieving extra information...
[0.00558901 0.00558901 0.00558901 0.00583334 0.00583334 0.00583334
 0.00816433 0.00816433 0.00816433 0.00816433 0.00816433 0.00816433
 0.00878926 0.00878926 0.00878926 0.00878926 0.00878926 0.00878926
 0.00878926 0.00878926]
[ 27 184 341 111 268 425  40  47 197 204 354 361   7  11 164 168 321 325
  17  24]
157 184
157 341
157 268
157 425
157 197
157 204
157 354
157 361
157 164
157 168
157 321
157 325

extra_info: 不是我们爱神,乃是神爱我们,差 祂的儿子,为我
四 成为孩子人生的辅助者、帮助者,成为孩子魂的牧人和监督 ,成为一起经营神事业的
四 父母的爱应该引导孩子有积极的回馈,彼此相爱,并影响他们去关爱别人 ——约壹四
二 哈拿的祷告,以及她在爱中的乳养,使神得着一个转移时代的器皿撒母耳 ——撒上一
耶穌,耶穌,我的爱。
耶穌,耶穌,我的爱。
音分给你们,连自己的性命也愿意分给你们,因你们是我们所爱的。
不爱弟兄的,未曾认识神,因为神就是爱。


chats_in_chinese: [{'role': '系统', 'content': '你是一个提供有用建议的 AI 助手。\n你被提供了一份长文档的一部分(额外信息)和一个问题。\n请根据我所提供的文本提供会话式的回答。\n你只应该提供与下面的文本相关的超链接。\n**不要**编造超链接。\n如果在下面的文本中找不到答案,可以使用你先前所知道的知识,\n但在大多数情况下,答案是在文本中的。\n请用中文以 Markdown 格式回答。\n'}, {'role': '用户', 'content': '额外信息:\n贰 圣经中母亲的榜样:\n肆 父母和孩子的爱的关系满足孩子不同阶段发展的需要:\n头一次的爱\n我的心充满欢喜。\n主耶穌充满在我里。\n神。\n面。\n父\n母天然的爱常会有偏心。\n立和加强。\n助他们建立积极的人生态度。\n当孩子在家、在\n起运动。\n父母与孩子一同过一\n对主的特别经历等等。\n孩子尽生机的功用。\n\n\n问题:What is this document about?'}, {'role': '用户', 'content': '额外信息:\n建立的,请简述你们是如何开始的,并列出时间、地点、内容,孩子们反应如何?(建议每次\n父母不但要花时间成为孩子的朋友, 还要成为属灵同伴: 和孩子建立读经祷告的生活,\n一 圣经中一位伟大的母亲是摩西的母亲约基别,她为神的子民预备了一位拯救者摩西,\n四 成为孩子人生的辅助者、帮助者,成为孩子魂的牧人和监督 ,成为一起经营神事业的\n一 父母对儿女的爱是神对人爱的一幅照片,是与生俱来的。\n四 父母的爱应该引导孩子有积极的回馈,彼此相爱,并影响他们去关爱别人 ——约壹四\n二 哈拿的祷告,以及她在爱中的乳养,使神得着一个转移时代的器皿撒母耳 ——撒上一\n\n\n问题:这个文档是关于什么的?'}, {'role': '用户', 'content': '额外信息:\n不是我们爱神,乃是神爱我们,差 祂的儿子,为我\n四 成为孩子人生的辅助者、帮助者,成为孩子魂的牧人和监督 ,成为一起经营神事业的\n四 父母的爱应该引导孩子有积极的回馈,彼此相爱,并影响他们去关爱别人 ——约壹四\n二 哈拿的祷告,以及她在爱中的乳养,使神得着一个转移时代的器皿撒母耳 ——撒上一\n耶穌,耶穌,我的爱。\n耶穌,耶穌,我的爱。\n音分给你们,连自己的性命也愿意分给你们,因你们是我们所爱的。\n不爱弟兄的,未曾认识神,因为神就是爱。\n\n\n问题:头一次的爱'}]

ChatGPT: 很抱歉,根据您提供的额外信息和问题,我无法找到足够的上下文来回答您的问题。可以提供更多的信息或具体引用文档中的哪一部分吗?
Keyboard interruption in main thread... closing server.
Closing server running on port: 7860
=> no.0  ::tools::test_demo  runtest  passed

Read More

2023-04-12
Text Embedding

文本嵌入技术综合教程

本教程涵盖了各种文本嵌入模型的原理、比较和实际应用,包括 OpenAI、HuggingFace、LLaMA 等主流模型。


In [ ]:
import os
from EdgeGPT import Chatbot as Bing, ConversationStyle

bing = Bing(cookiePath = os.path.expanduser('~/.config/EdgeGPT/cookies.json'))

async def ask(prompt):
    res = (await bing.ask(
        prompt = prompt,
        conversation_style = ConversationStyle.balanced,
    ))['item']['messages'][1]

    print(res['text'])
    print('\n---\n')
    print(res['adaptiveCards'][0]['body'][0]['text'])

In [ ]:
await ask('''
text-embedding-ada-002 是什么?
''')
text-embedding-ada-002 是 OpenAI 提供的一种嵌入模型,用于将文本转换为向量表示。[^1^] 你可以将文本字符串发送到嵌入 API 端点,同时选择嵌入模型 ID(例如 text-embedding-ada-002),响应将包含一个嵌入,你可以提取、保存和使用。[^1^] 

text-embedding-ada-002 模型是 OpenAI 提供的第二代嵌入模型之一,它比第一代模型更好、更便宜、更简单易用。[^5^] 

如果你想了解更多关于 text-embedding-ada-002 的信息,可以参考 OpenAI 的官方文档。[^5^]

---

[1]: https://platform.openai.com/docs/guides/embeddings/second-generation-models "Embeddings - OpenAI API"
[2]: https://juejin.cn/post/7216319218505220151 "OpenAI的Embedding - 掘金 - 稀土掘金"
[3]: https://cloud.tencent.com/developer/article/2222888 "GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试 - 腾讯云开发者社区-腾讯云"
[4]: https://openai.com/blog/new-and-improved-embedding-model/ "New and improved embedding model - openai.com"
[5]: https://platform.openai.com/docs/guides/embeddings "Embeddings - OpenAI API"

text-embedding-ada-002 是 OpenAI 提供的一种嵌入模型,用于将文本转换为向量表示。[^1^][1] 你可以将文本字符串发送到嵌入 API 端点,同时选择嵌入模型 ID(例如 text-embedding-ada-002),响应将包含一个嵌入,你可以提取、保存和使用。[^1^][1] 

text-embedding-ada-002 模型是 OpenAI 提供的第二代嵌入模型之一,它比第一代模型更好、更便宜、更简单易用。[^2^][5] 

如果你想了解更多关于 text-embedding-ada-002 的信息,可以参考 OpenAI 的官方文档。[^2^][5]

In [ ]:
await ask('''
比较 GPT-3 嵌入、GloVe 嵌入、Word2vec 嵌入、MPNet 嵌入
''')
GPT-3 嵌入、GloVe 嵌入、Word2vec 嵌入和 MPNet 嵌入都是常见的文本嵌入模型。其中,GPT-3 是 OpenAI 开发的一种大型语言模型,可以生成自然语言文本[^1^]。GloVe 和 Word2vec 都是基于神经网络的词向量模型,用于将单词转换为向量表示,以便计算机可以更好地理解自然语言[^1^] [^2^]。MPNet 是一种基于多任务学习的预训练语言模型,可以用于各种自然语言处理任务[^1^] [^4^]。

据腾讯云开发者社区的一篇文章所述,该作者使用了 text-embedding-ada-002(GPT-3 的一个 Embeddings)与三种传统文本嵌入技术生成的嵌入进行比较,即 GloVe、Word2vec 和 MPNet。结果显示,GPT-3 嵌入在所有模型中获得了最高的精度[^1^]。但是,这些模型的性能可能会因应用场景而异。如果你需要更多信息,请告诉我!

---

[1]: https://cloud.tencent.com/developer/article/2222888 "GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试 - 腾讯云开发者社区-腾讯云"
[2]: https://developer.aliyun.com/article/1159268 "GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试-阿里云开发者社区"
[3]: https://new.qq.com/rain/a/20230212A01IWP00 "GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试_腾讯新闻"
[4]: https://blog.csdn.net/tMb8Z9Vdm66wH68VX1/article/details/129153025 "GPT-3 vs Bert vs GloVe vs Word2vec 文本嵌入技术的性能对比测试"
[5]: https://zhuanlan.zhihu.com/p/605603003 "GPT-3 vs Bert vs GloVe 文本嵌入技术的性能对比测试 - 知乎"

GPT-3 嵌入、GloVe 嵌入、Word2vec 嵌入和 MPNet 嵌入都是常见的文本嵌入模型。其中,GPT-3 是 OpenAI 开发的一种大型语言模型,可以生成自然语言文本[^1^][1]。GloVe 和 Word2vec 都是基于神经网络的词向量模型,用于将单词转换为向量表示,以便计算机可以更好地理解自然语言[^1^][1] [^2^][2]。MPNet 是一种基于多任务学习的预训练语言模型,可以用于各种自然语言处理任务[^1^][1] [^3^][4]。

据腾讯云开发者社区的一篇文章所述,该作者使用了 text-embedding-ada-002(GPT-3 的一个 Embeddings)与三种传统文本嵌入技术生成的嵌入进行比较,即 GloVe、Word2vec 和 MPNet。结果显示,GPT-3 嵌入在所有模型中获得了最高的精度[^1^][1]。但是,这些模型的性能可能会因应用场景而异。如果你需要更多信息,请告诉我!

In [ ]:
await ask('''
还有哪些文本嵌入模型?
''')
除了 GPT-3 嵌入、GloVe 嵌入、Word2vec 嵌入和 MPNet 嵌入之外,还有许多其他文本嵌入模型。例如,ELMo、Skip-Thoughts、Quick-Thoughts、InferSent、MILA/MSR 的通用句子表示和 Google 的通用句子编码器等模型都是最先进的模型之一[^1^]。这些模型的性能可能会因应用场景而异。如果你需要更多信息,请告诉我!

---

[1]: https://cloud.tencent.com/developer/article/1167972 "干货 | 文本嵌入的经典模型与最新进展 - 腾讯云开发者社区-腾讯云"
[2]: https://blog.csdn.net/lingpy/article/details/80809926 "文本嵌入的经典模型与最新进展 - CSDN博客"
[3]: https://zhuanlan.zhihu.com/p/459295186 "5分钟 NLP系列—— 11 个词嵌入模型总结 - 知乎 - 知乎专栏"

除了 GPT-3 嵌入、GloVe 嵌入、Word2vec 嵌入和 MPNet 嵌入之外,还有许多其他文本嵌入模型。例如,ELMo、Skip-Thoughts、Quick-Thoughts、InferSent、MILA/MSR 的通用句子表示和 Google 的通用句子编码器等模型都是最先进的模型之一[^1^][1]。这些模型的性能可能会因应用场景而异。如果你需要更多信息,请告诉我!

In [ ]:
await ask('''
文本嵌入模型的英文?
''')
The English term for "文本嵌入模型" is "text embedding models". Some of the most common text embedding models include Word2Vec, GloVe, FastText and Embeddings from Language Models (ELMo)[^1^] [^2^]. If you need more information about these models or any other text embedding models, please let me know!

---

[1]: https://techblog.ezra.com/different-embedding-models-7874197dc410 "What are the common word embeddings? | The Ezra Tech Blog - Medium"
[2]: https://openai.com/blog/introducing-text-and-code-embeddings/ "Introducing text and code embeddings - OpenAI"
[3]: https://www.deepset.ai/blog/the-beginners-guide-to-text-embeddings "The Beginner’s Guide to Text Embeddings | deepset"
[4]: https://platform.openai.com/docs/guides/embeddings/embedding-models "Embeddings - OpenAI API"

The English term for "文本嵌入模型" is "text embedding models". Some of the most common text embedding models include Word2Vec, GloVe, FastText and Embeddings from Language Models (ELMo)[^1^][1] [^2^][2]. If you need more information about these models or any other text embedding models, please let me know!

In [ ]:
await ask('''
InstructorEmbedding 是什么?
''')
InstructorEmbedding is a text embedding model that can generate text embeddings tailored to any task (e.g., classification, retrieval, clustering, text evaluation, etc.) and domains (e.g., science, finance, etc.) by simply providing the task instruction, without any finetuning[^1^]. It is a single embedder that can generate text embeddings tailored to different downstream tasks and domains[^1^]. InstructorEmbedding is available as a Python package[^2^]. If you need more information about InstructorEmbedding or any other text embedding models, please let me know!

---

[1]: https://instructor-embedding.github.io/ "Instructor Text Embedding"
[2]: https://pypi.org/project/InstructorEmbedding/ "InstructorEmbedding · PyPI"
[3]: https://python.langchain.com/en/latest/_modules/langchain/embeddings/huggingface.html "langchain.embeddings.huggingface — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.135"

InstructorEmbedding is a text embedding model that can generate text embeddings tailored to any task (e.g., classification, retrieval, clustering, text evaluation, etc.) and domains (e.g., science, finance, etc.) by simply providing the task instruction, without any finetuning[^1^][1]. It is a single embedder that can generate text embeddings tailored to different downstream tasks and domains[^1^][1]. InstructorEmbedding is available as a Python package[^2^][2]. If you need more information about InstructorEmbedding or any other text embedding models, please let me know!

In [ ]:
await ask('''
比较 HuggingFaceInstructEmbeddings 和 HuggingFaceHubEmbeddings
''')
HuggingFaceInstructEmbeddings and HuggingFaceHubEmbeddings are both wrappers around sentence_transformers embedding models[^2^] [^3^]. HuggingFaceInstructEmbeddings is a wrapper around InstructorEmbedding[^2^], while HuggingFaceHubEmbeddings is a wrapper around Hugging Face Hub embedding models[^3^]. To use HuggingFaceInstructEmbeddings, you should have the `sentence_transformers` and `InstructorEmbedding` Python packages installed[^2^]. To use HuggingFaceHubEmbeddings, you should have the `huggingface_hub` Python package installed and the environment variable `HUGGINGFACEHUB_API_TOKEN` set with your API token, or pass it as a named parameter to the constructor[^3^]. If you need more information about HuggingFaceInstructEmbeddings or HuggingFaceHubEmbeddings or any other text embedding models, please let me know!

---

[1]: https://huggingface.co/blog/getting-started-with-embeddings "Getting Started With Embeddings - Hugging Face"
[2]: https://python.langchain.com/en/latest/_modules/langchain/embeddings/huggingface.html "langchain.embeddings.huggingface — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.135"
[3]: https://sj-langchain.readthedocs.io/en/latest/reference/modules/embeddings.html "Embeddings — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.94"
[4]: https://stackoverflow.com/questions/64685243/getting-sentence-embedding-from-huggingface-feature-extraction-pipeline "machine learning - Getting sentence embedding from huggingface Feature ..."

HuggingFaceInstructEmbeddings and HuggingFaceHubEmbeddings are both wrappers around sentence_transformers embedding models[^1^][2] [^2^][3]. HuggingFaceInstructEmbeddings is a wrapper around InstructorEmbedding[^1^][2], while HuggingFaceHubEmbeddings is a wrapper around Hugging Face Hub embedding models[^2^][3]. To use HuggingFaceInstructEmbeddings, you should have the `sentence_transformers` and `InstructorEmbedding` Python packages installed[^1^][2]. To use HuggingFaceHubEmbeddings, you should have the `huggingface_hub` Python package installed and the environment variable `HUGGINGFACEHUB_API_TOKEN` set with your API token, or pass it as a named parameter to the constructor[^2^][3]. If you need more information about HuggingFaceInstructEmbeddings or HuggingFaceHubEmbeddings or any other text embedding models, please let me know!

In [ ]:
await ask('''
sentence_transformers 的 GitHub 链接?
''')
Here is the GitHub link for sentence_transformers: https://github.com/UKPLab/sentence-transformers [^1^] [^5^]. You can find more information about sentence_transformers and how to use it in your project by visiting this link. Let me know if you have any other questions!

---

[1]: https://github.com/taishan1994/sbert_text_similarity "GitHub - taishan1994/sbert_text_similarity: 使用sentence-transformers ..."
[2]: https://github.com/zhangyi24/sentence_transformer_zh "GitHub - zhangyi24/sentence_transformer_zh"
[3]: https://blog.csdn.net/RinaWong/article/details/122890394 "安装sentence-transformers_竹霖聴雨的博客-CSDN博客"
[4]: https://github.com/UKPLab/sentence-transformers "UKPLab/sentence-transformers - Github"
[5]: https://github.com/UKPLab/sentence-transformers/blob/master/docs/pretrained_models.md "sentence-transformers/pretrained_models.md at master · UKPLab ... - GitHub"
[6]: https://github.com/huggingface/blog/blob/main/how-to-train-sentence-transformers.md "blog/how-to-train-sentence-transformers.md at main - Github"

Here is the GitHub link for sentence_transformers: https://github.com/UKPLab/sentence-transformers [^1^][1] [^2^][5]. You can find more information about sentence_transformers and how to use it in your project by visiting this link. Let me know if you have any other questions!

In [ ]:
await ask('''
InstructorEmbedding 的 GitHub 链接?
''')
Here is the GitHub link for InstructorEmbedding: https://github.com/HKUNLP/instructor-embedding [^1^] [^2^]. You can find more information about InstructorEmbedding and how to use it in your project by visiting this link. Let me know if you have any other questions!

---

[1]: https://pypi.org/project/InstructorEmbedding/ "InstructorEmbedding · PyPI"
[2]: https://github.com/HKUNLP/instructor-embedding "GitHub - HKUNLP/instructor-embedding: One Embedder, Any Task ..."
[3]: https://github.com/basujindal/chatPDF "GitHub - basujindal/chatPDF: chat with PDF"

Here is the GitHub link for InstructorEmbedding: https://github.com/HKUNLP/instructor-embedding [^1^][1] [^2^][2]. You can find more information about InstructorEmbedding and how to use it in your project by visiting this link. Let me know if you have any other questions!

In [ ]:
await ask('''
比较 HuggingFaceInstructEmbeddings 和 LlamaCppEmbeddings
''')
HuggingFaceInstructEmbeddings 和 LlamaCppEmbeddings 都是用于自然语言处理的嵌入式模型。HuggingFaceInstructEmbeddings 是 sentence_transformers 的包装器,而 LlamaCppEmbeddings 是 llama.cpp 嵌入式模型的包装器。这两个模型都可以用于生成文本嵌入,但是它们的实现方式和性能可能有所不同。如果您需要更多的信息,请访问它们的 GitHub 页面:https://github.com/HKUNLP/instructor-embedding [^1^] [^2^] 和 https://github.com/ggerganov/llama.cpp [^3^] 。

---

[1]: https://python.langchain.com/en/latest/_modules/langchain/embeddings/llamacpp.html "langchain.embeddings.llamacpp — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.136"
[2]: https://python.langchain.com/en/latest/_modules/langchain/embeddings/huggingface.html "langchain.embeddings.huggingface — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.135"
[3]: https://sj-langchain.readthedocs.io/en/latest/_modules/langchain/embeddings/huggingface.html "langchain.embeddings.huggingface — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.94"

HuggingFaceInstructEmbeddings 和 LlamaCppEmbeddings 都是用于自然语言处理的嵌入式模型。HuggingFaceInstructEmbeddings 是 sentence_transformers 的包装器,而 LlamaCppEmbeddings 是 llama.cpp 嵌入式模型的包装器。这两个模型都可以用于生成文本嵌入,但是它们的实现方式和性能可能有所不同。如果您需要更多的信息,请访问它们的 GitHub 页面:https://github.com/HKUNLP/instructor-embedding [^1^][1] [^2^][2] 和 https://github.com/ggerganov/llama.cpp [^3^][3] 。

In [ ]:
await ask('''
执行下面这段代码之后,HuggingFaceEmbeddings 的模型下载到哪里了?
```
from langchain.embeddings import HuggingFaceEmbeddings

# 准备文本
text = '这是一个测试文档。'

# 使用 HuggingFace 生成文本嵌入
embeddings = HuggingFaceEmbeddings()
query_result = embeddings.embed_query(text)
doc_result = embeddings.embed_documents([text])
```
''')
HuggingFaceEmbeddings 的模型下载路径是本地缓存。当您第一次使用该模型时,它会自动缓存在本地。如果您想查看缓存的位置,可以运行以下代码:
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
print(tokenizer.cache_dir)
```
如果您想将模型下载到特定的文件夹中,可以使用以下代码:
```
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased", cache_dir="my_folder")
```
希望这可以帮助到您!

---

[1]: https://python.langchain.com/en/latest/_modules/langchain/embeddings/huggingface.html "langchain.embeddings.huggingface — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.135"
[2]: https://stackoverflow.com/questions/67595500/how-to-download-model-from-huggingface "How to download model from huggingface? - Stack Overflow"
[3]: https://github.com/hwchase17/langchain/blob/master/langchain/embeddings/huggingface.py "langchain/huggingface.py at master · hwchase17/langchain"

HuggingFaceEmbeddings 的模型下载路径是本地缓存。当您第一次使用该模型时,它会自动缓存在本地。如果您想查看缓存的位置,可以运行以下代码:
```
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
print(tokenizer.cache_dir)
```
如果您想将模型下载到特定的文件夹中,可以使用以下代码:
```
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModel.from_pretrained("bert-base-uncased", cache_dir="my_folder")
```
希望这可以帮助到您!

In [ ]:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('bert-base-uncased')
dir(tokenizer)
In [ ]:
tokenizer.name_or_path
Out[ ]:
'bert-base-uncased'
In [ ]:
%%bash
ls -lah ~/.cache/huggingface/hub/models--bert-base-uncased
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
	- Avoid using `tokenizers` before the fork if possible
	- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
total 0
drwxr-xr-x  6 saintway  staff   192B Apr 12 14:43 .
drwxr-xr-x  6 saintway  staff   192B Apr 12 14:43 ..
drwxr-xr-x  3 saintway  staff    96B Apr 12 14:43 .no_exist
drwxr-xr-x  6 saintway  staff   192B Apr 12 14:43 blobs
drwxr-xr-x  3 saintway  staff    96B Apr 12 14:43 refs
drwxr-xr-x  3 saintway  staff    96B Apr 12 14:43 snapshots
In [ ]:
%%bash
du -sh ~/.cache/huggingface/hub/models--bert-base-uncased
huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...
To disable this warning, you can either:
	- Avoid using `tokenizers` before the fork if possible
	- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)
696K	/Users/saintway/.cache/huggingface/hub/models--bert-base-uncased

推荐工具和资源

向量数据库

如果你在寻找向量数据库嵌入解决方案,推荐查看:

模型微调

如果你需要进行模型微调,推荐:

推荐的基础模型

  • gpt4xalpaca - 推荐作为基础模型,审查程度较低
  • GPT4 x Alpaca - 如果仅用于道德任务,vicuna 可能更好
In [ ]:
await ask('''
Chroma Embedding Database 是什么
''')
Chroma Embedding Database 是一个开源的嵌入式数据库,用于存储人工智能模型的嵌入[^1^]。嵌入是向量的集合。Chroma 的数据库专门用于存储 AI 模型的嵌入[^2^]。它允许您通过最近邻搜索而不是子字符串搜索来搜索嵌入[^3^]。默认情况下,Chroma 使用 Sentence Transformers 进行嵌入,但您也可以使用 OpenAI 嵌入、Cohere(多语言)嵌入或自己的嵌入[^3^]。

希望这可以帮助您了解 Chroma Embedding Database。

---

[1]: https://docs.trychroma.com/ "\uD83C\uDFE1 Home | Chroma"
[2]: https://siliconangle.com/2023/04/06/chroma-bags-18m-speed-ai-models-embedding-database/ "Chroma bags $18M to speed up AI models with its embedding database"
[3]: https://pypi.org/project/chromadb/ "chromadb · PyPI"
[4]: https://www.trychroma.com/ "Chroma - the AI-native open-source embedding database"
[5]: https://github.com/chroma-core/chroma "GitHub - chroma-core/chroma: the open source embedding database"

Chroma Embedding Database 是一个开源的嵌入式数据库,用于存储人工智能模型的嵌入[^1^][1]。嵌入是向量的集合。Chroma 的数据库专门用于存储 AI 模型的嵌入[^2^][2]。它允许您通过最近邻搜索而不是子字符串搜索来搜索嵌入[^3^][3]。默认情况下,Chroma 使用 Sentence Transformers 进行嵌入,但您也可以使用 OpenAI 嵌入、Cohere(多语言)嵌入或自己的嵌入[^3^][3]。

希望这可以帮助您了解 Chroma Embedding Database。

In [ ]:
await ask('''
ggml 是什么
''')
ggml 是一个用于机器学习的张量库。该项目正在开发中,尚未准备好用于生产。它是用 C 语言编写的,支持 16 位浮点数和 4 位整数量化。它还支持自动微分(正在进行中)ADAM 和 L ...[^3^]。

希望这可以帮助到您!

---

[1]: https://gitee.com/mirrors/ggml "ggml: ggml 是一个用于机器学习的张量库"
[2]: https://www.oschina.net/p/ggml "ggml首页、文档和下载 - 机器学习的张量库 - OSCHINA - 中文开源技术交流社区"
[3]: https://github.com/ggerganov/ggml "GitHub - ggerganov/ggml: Tensor library for machine learning"
[4]: https://zhuanlan.zhihu.com/p/616037509 "介绍大模型LLaMa及周边 - 知乎 - 知乎专栏"
[5]: https://github.com/ggerganov/whisper.cpp "ggerganov/whisper.cpp: Port of OpenAI's Whisper model in C/C++ - Github"

ggml 是一个用于机器学习的张量库。该项目正在开发中,尚未准备好用于生产。它是用 C 语言编写的,支持 16 位浮点数和 4 位整数量化。它还支持自动微分(正在进行中)ADAM 和 L ...[^1^][3]。

希望这可以帮助到您!

In [ ]:
await ask('''
HUGGINGFACEHUB_API_TOKEN 有什么用?
''')
HUGGINGFACEHUB_API_TOKEN 是一个环境变量,用于验证您的 API 令牌。您可以使用它来访问 Hugging Face Hub API,以便在您的模型中使用预训练模型、上传和下载模型等。[^1^] [^3^]

希望这可以帮助到您!

---

[1]: https://sj-langchain.readthedocs.io/en/latest/ecosystem/huggingface.html "Hugging Face — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.94"
[2]: https://zhuanlan.zhihu.com/p/344173246 "用户身份验证的令牌——Token - 知乎 - 知乎专栏"
[3]: https://github.com/hwchase17/langchain/blob/master/langchain/llms/huggingface_hub.py "langchain/huggingface_hub.py at master · hwchase17/langchain"

HUGGINGFACEHUB_API_TOKEN 是一个环境变量,用于验证您的 API 令牌。您可以使用它来访问 Hugging Face Hub API,以便在您的模型中使用预训练模型、上传和下载模型等。[^1^][1] [^2^][3]

希望这可以帮助到您!

In [ ]:
await ask('''
Hugging Face Hub API 有什么用?
''')
Hugging Face Hub API 是一个模型和数据集的存储库,可以让您轻松地共享、发现和使用模型和数据集。它提供了一组 API,可以让您从 Python 中上传、下载和管理模型和数据集。您可以使用 Hugging Face Hub API 来存储、共享和管理您的模型和数据集,也可以使用它来发现其他人共享的模型和数据集。[^1^]

Hugging Face Hub API 还提供了一些端点,您可以使用这些端点从 Hub 中检索信息,也可以执行某些操作,例如创建模型、数据集或 Space 存储库。[^1^]

---

[1]: https://huggingface.co/docs/hub/api "https://\uE000huggingface\uE001.co/docs/\uE000hub\uE001/\uE000api\uE001"

Hugging Face Hub API 是一个模型和数据集的存储库,可以让您轻松地共享、发现和使用模型和数据集。它提供了一组 API,可以让您从 Python 中上传、下载和管理模型和数据集。您可以使用 Hugging Face Hub API 来存储、共享和管理您的模型和数据集,也可以使用它来发现其他人共享的模型和数据集。[^1^][1]

Hugging Face Hub API 还提供了一些端点,您可以使用这些端点从 Hub 中检索信息,也可以执行某些操作,例如创建模型、数据集或 Space 存储库。[^1^][1]

In [ ]:
await ask('''
没有 HUGGINGFACEHUB_API_TOKEN 就不能使用 Hugging Face Hub API 吗?
''')
是的,Hugging Face Hub API 需要 HUGGINGFACEHUB_API_TOKEN。您需要在 Hugging Face 帐户设置中获取用户访问或 API 令牌。如果您在发送请求到 API 时不提交 API 令牌,则无法在私有模型上运行推理。[^1^] [^3^]

---

[1]: https://api-inference.huggingface.co/docs/python/html/quicktour.html "Overview - Hugging Face"
[2]: https://huggingface.co/docs/huggingface_hub/how-to-inference "Access the Inference API - Hugging Face"
[3]: https://python.langchain.com/en/latest/ecosystem/huggingface.html "Hugging Face — \uD83E\uDD9C\uD83D\uDD17 LangChain 0.0.137"
[4]: https://docs.fast.ai/huggingface.html "fastai - Hugging Face Hub"
[5]: https://zhuanlan.zhihu.com/p/619763221 "HuggingGPT: 用ChatGPT和它的朋友在HuggingFace中解决AI任务 - 知乎"

是的,Hugging Face Hub API 需要 HUGGINGFACEHUB_API_TOKEN。您需要在 Hugging Face 帐户设置中获取用户访问或 API 令牌。如果您在发送请求到 API 时不提交 API 令牌,则无法在私有模型上运行推理。[^1^][1] [^2^][3]

In [ ]:
await ask('''
没有 HUGGINGFACEHUB_API_TOKEN 就不能在 HuggingFace 下载模型吗?
''')
是的,您需要 HUGGINGFACEHUB_API_TOKEN 才能在 HuggingFace 下载模型。如果您在发送请求到 API 时不提交 API 令牌,则无法在私有模型上运行推理。[^1^] [^3^]

---

[1]: https://huggingface.co/docs/hub/security-tokens "User access tokens - Hugging Face"
[2]: https://blog.csdn.net/qq_41895747/article/details/125232359 "解决ValueError: You need to pass a valid `token` or login by using ..."
[3]: https://stackoverflow.com/questions/67595500/how-to-download-model-from-huggingface "How to download model from huggingface? - Stack Overflow"
[4]: https://zhuanlan.zhihu.com/p/475260268 "如何优雅的下载huggingface-transformers模型 - 知乎 - 知乎专栏"
[5]: https://juejin.cn/post/7220623225775095869 "ILLA Cloud- 调用 Hugging Face Inference Endpoints,开启大模型世界之门 - 掘金"

是的,您需要 HUGGINGFACEHUB_API_TOKEN 才能在 HuggingFace 下载模型。如果您在发送请求到 API 时不提交 API 令牌,则无法在私有模型上运行推理。[^1^][1] [^2^][3]

In [ ]:
await ask('''
在模型上运行推理是什么意思?训练模型是什么意思?
''')
在机器学习中,训练模型是指使用大量数据来训练模型,以便它可以自动地从新数据中进行预测。在训练期间,模型会根据输入数据进行调整,以便它可以更好地预测输出。训练完成后,模型就可以用于推理,也就是使用新数据进行预测。

推理是指使用训练好的模型来进行预测。在推理期间,模型会接收新的输入数据,并输出预测结果。推理通常比训练快得多,因为它不需要对模型进行调整。

希望这可以帮到你。如果你有其他问题,请随时问我。

---

在机器学习中,训练模型是指使用大量数据来训练模型,以便它可以自动地从新数据中进行预测。在训练期间,模型会根据输入数据进行调整,以便它可以更好地预测输出。训练完成后,模型就可以用于推理,也就是使用新数据进行预测。

推理是指使用训练好的模型来进行预测。在推理期间,模型会接收新的输入数据,并输出预测结果。推理通常比训练快得多,因为它不需要对模型进行调整。

希望这可以帮到你。如果你有其他问题,请随时问我。

In [ ]:
await ask('''
没有 HUGGINGFACEHUB_API_TOKEN 可以在 HuggingFace 下载他人公开的模型吗?
''')
HuggingFace 下载他人公开的模型不需要 HUGGINGFACEHUB_API_TOKEN。你可以通过以下方式下载他人公开的模型:

1. 通过 Hugging Face 官网下载,例如:https://huggingface.co/models
2. 通过 Transformers 库中的 from_pretrained 方法下载,例如:

```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
```

希望这可以帮到你。如果你有其他问题,请随时问我。

---

[1]: https://zhuanlan.zhihu.com/p/475260268 "如何优雅的下载huggingface-transformers模型 - 知乎 - 知乎专栏"
[2]: https://huggingface.co/inference-api "Inference API - Hugging Face"
[3]: https://zhuanlan.zhihu.com/p/448852278 "【Huggingface Transformers】保姆级使用教程—上 - 知乎"
[4]: https://pypi.org/project/huggingface-hub/ "huggingface-hub · PyPI"
[5]: https://stackoverflow.com/questions/67595500/how-to-download-model-from-huggingface "How to download model from huggingface? - Stack Overflow"

HuggingFace 下载他人公开的模型不需要 HUGGINGFACEHUB_API_TOKEN。你可以通过以下方式下载他人公开的模型:

1. 通过 Hugging Face 官网下载,例如:https://huggingface.co/models
2. 通过 Transformers 库中的 from_pretrained 方法下载,例如:

```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
```

希望这可以帮到你。如果你有其他问题,请随时问我。

In [ ]:
await ask('''
怎么用 Python 在 HuggingFace 下载模型?
''')
您可以使用以下代码在 HuggingFace 中下载模型:
```
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
```
这将下载 BERT 模型和 tokenizer。

---

您可以使用以下代码在 HuggingFace 中下载模型:
```
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
```
这将下载 BERT 模型和 tokenizer。

In [ ]:
await ask('''
在 HuggingFace 下载模型,如何断点续传?
''')
您可以使用以下代码在 HuggingFace 中断点续传下载模型:
```
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", resume_download=True)
```
这将下载 BERT 模型和 tokenizer,并在下载过程中断点续传。

---

[1]: https://zhuanlan.zhihu.com/p/475260268 "https://zhuanlan.zhihu.com/p/475260268"

您可以使用以下代码在 HuggingFace 中断点续传下载模型:
```
from transformers import AutoTokenizer, AutoModelForSequenceClassification

tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", resume_download=True)
```
这将下载 BERT 模型和 tokenizer,并在下载过程中断点续传。

In [ ]:
await ask('''
PyTorch 模型可以分成好几个 bin 文件吗?
''')
PyTorch 模型可以分成多个文件,其中包括模型权重和其他模型参数。如果您的模型是由多个子模型组成的,则可以将每个子模型的权重和参数保存在单独的文件中。这些文件可以使用 PyTorch 的 state_dict 和 optimizer 保存在同一个文件中[^9^]. 

您可以使用以下代码将模型保存到多个文件中:

```python
torch.save(model.state_dict(), PATH)
```

其中,`model` 是您要保存的 PyTorch 模型,`PATH` 是您要保存的文件路径。这将会把模型权重和其他参数保存到一个名为 `PATH` 的文件中。

如果您想要加载这些文件并恢复模型,则可以使用以下代码:

```python
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
```

其中,`TheModelClass` 是您要恢复的 PyTorch 模型类,`*args` 和 `**kwargs` 是用于初始化模型的参数。这将会从名为 `PATH` 的文件中加载模型权重和其他参数,并将它们加载到新创建的模型实例中。

希望这可以帮助您!请让我知道是否还有其他问题需要解答。

---

[1]: https://blog.csdn.net/qq_39686950/article/details/116090826 "Windows系统下把PyTorch模型转为ncnn模型流程 - CSDN博客"
[2]: https://blog.csdn.net/season77us/article/details/104311195 "如何下载Hugging Face 模型(pytorch_model.bin, config.json, vocab.txt)以及如何在 ..."
[3]: https://www.cnblogs.com/cxq1126/p/14277134.html "将tensorflow版本的.ckpt模型转成pytorch的.bin模型 - 最咸的鱼 - 博客园"
[4]: https://zhuanlan.zhihu.com/p/620688513 "Pytorch格式 .pt .pth .bin 详解 - 知乎 - 知乎专栏"
[5]: https://blog.csdn.net/znevegiveup1/article/details/118093294 "读取pytorch.bin权重文件解读_pytorch_model.bin_唐僧爱吃唐僧肉的博客-CSDN博客"
[6]: https://blog.csdn.net/A_water_/article/details/128197563 "Pytorch框架的模型pth文件转换成C++ OpenVINO框架的bin和xml文件并运行_pth转bin_A_water_的博客-CSDN博客"
[7]: https://zhuanlan.zhihu.com/p/113694038 "PyTorch分布式训练简明教程(2022更新版) - 知乎 - 知乎专栏"
[8]: https://zhuanlan.zhihu.com/p/82038049 "PyTorch | 保存和加载模型 - 知乎"
[9]: https://pytorch.org/tutorials/recipes/recipes/saving_multiple_models_in_one_file.html "Saving and loading multiple models in one file using PyTorch"

PyTorch 模型可以分成多个文件,其中包括模型权重和其他模型参数。如果您的模型是由多个子模型组成的,则可以将每个子模型的权重和参数保存在单独的文件中。这些文件可以使用 PyTorch 的 state_dict 和 optimizer 保存在同一个文件中[^1^][9]. 

您可以使用以下代码将模型保存到多个文件中:

```python
torch.save(model.state_dict(), PATH)
```

其中,`model` 是您要保存的 PyTorch 模型,`PATH` 是您要保存的文件路径。这将会把模型权重和其他参数保存到一个名为 `PATH` 的文件中。

如果您想要加载这些文件并恢复模型,则可以使用以下代码:

```python
model = TheModelClass(*args, **kwargs)
model.load_state_dict(torch.load(PATH))
```

其中,`TheModelClass` 是您要恢复的 PyTorch 模型类,`*args` 和 `**kwargs` 是用于初始化模型的参数。这将会从名为 `PATH` 的文件中加载模型权重和其他参数,并将它们加载到新创建的模型实例中。

希望这可以帮助您!请让我知道是否还有其他问题需要解答。

In [ ]:
import os
import pickle
from langchain.document_loaders import DirectoryLoader, TextLoader
from langchain.embeddings import LlamaCppEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores.faiss import FAISS

def get_docs(dir_name):
    # (1) Import a series of documents.
    loader = DirectoryLoader(dir_name, loader_cls=TextLoader, silent_errors=True)
    raw_documents = loader.load()
    # (2) Split them into small chunks.
    text_splitter = RecursiveCharacterTextSplitter(
        chunk_size=512,
        chunk_overlap=128,
    )
    return text_splitter.split_documents(raw_documents)

def ingest_docs(dir_name):
    documents = get_docs(dir_name)
    # (3) Create embeddings for each document (using text-embedding-ada-002).
    embeddings = LlamaCppEmbeddings(model_path=os.path.expanduser('~/ggml-model-q4_1.bin'), n_ctx=1024)
    return FAISS.from_documents(documents, embeddings)

vectorstore = ingest_docs('_posts/ultimate-facts')
llama.cpp: loading model from /Users/saintway/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 1024
llama_model_load_internal: n_embd     = 5120
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 40
llama_model_load_internal: n_layer    = 40
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 13824
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 13B
llama_model_load_internal: ggml ctx size =  73.73 KB
llama_model_load_internal: mem required  = 11359.03 MB (+ 3216.00 MB per state)
llama_init_from_file: kv self size  = 1600.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 58231.14 ms /   136 tokens (  428.17 ms per token)
llama_print_timings:        eval time =  1743.42 ms /     1 runs   ( 1743.42 ms per run)
llama_print_timings:       total time = 60005.23 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 178540.67 ms /   472 tokens (  378.26 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 178591.84 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 41458.73 ms /   139 tokens (  298.26 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 41490.46 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 13792.71 ms /    51 tokens (  270.45 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 13806.36 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 64205.43 ms /   192 tokens (  334.40 ms per token)
llama_print_timings:        eval time =   393.32 ms /     1 runs   (  393.32 ms per run)
llama_print_timings:       total time = 64615.16 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 312641.94 ms /   458 tokens (  682.62 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 312700.26 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 428699.27 ms /   478 tokens (  896.86 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 428799.03 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 268943.46 ms /   309 tokens (  870.37 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 268984.75 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 428036.12 ms /   648 tokens (  660.55 ms per token)
llama_print_timings:        eval time =   426.99 ms /     1 runs   (  426.99 ms per run)
llama_print_timings:       total time = 428658.90 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 10771.61 ms /    30 tokens (  359.05 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 10808.14 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 77845.98 ms /   109 tokens (  714.18 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 77920.76 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 31191.36 ms /   103 tokens (  302.83 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 31233.61 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 125583.51 ms /   111 tokens ( 1131.38 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 125624.03 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 26138.27 ms /    68 tokens (  384.39 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 26169.78 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 12869.16 ms /    35 tokens (  367.69 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 12877.02 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 349920.02 ms /   504 tokens (  694.29 ms per token)
llama_print_timings:        eval time =  1198.45 ms /     1 runs   ( 1198.45 ms per run)
llama_print_timings:       total time = 351175.09 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 235384.79 ms /   158 tokens ( 1489.78 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 235445.03 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 540504.96 ms /   542 tokens (  997.24 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 540623.58 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 351235.10 ms /   719 tokens (  488.51 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 351388.48 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 50923.63 ms /   165 tokens (  308.63 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 51015.38 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 184992.04 ms /   272 tokens (  680.12 ms per token)
llama_print_timings:        eval time =   411.72 ms /     1 runs   (  411.72 ms per run)
llama_print_timings:       total time = 185451.72 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 194429.41 ms /   622 tokens (  312.59 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 194464.86 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 113118.77 ms /   366 tokens (  309.07 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 113145.92 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 687028.24 ms /   728 tokens (  943.72 ms per token)
llama_print_timings:        eval time =   439.94 ms /     1 runs   (  439.94 ms per run)
llama_print_timings:       total time = 687586.24 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 189149.69 ms /   533 tokens (  354.88 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 189193.56 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 191291.91 ms /   560 tokens (  341.59 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 191325.52 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 262665.41 ms /   725 tokens (  362.30 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 262699.98 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 446825.63 ms /   744 tokens (  600.57 ms per token)
llama_print_timings:        eval time =  2820.09 ms /     1 runs   ( 2820.09 ms per run)
llama_print_timings:       total time = 449699.31 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 370878.55 ms /   717 tokens (  517.26 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 370985.32 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 316657.40 ms /   647 tokens (  489.42 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 316701.04 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 355381.24 ms /   504 tokens (  705.12 ms per token)
llama_print_timings:        eval time =   426.32 ms /     1 runs   (  426.32 ms per run)
llama_print_timings:       total time = 355866.70 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 306588.42 ms /   559 tokens (  548.46 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 306644.46 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 388570.23 ms /   565 tokens (  687.73 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 388642.65 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 123319.83 ms /   318 tokens (  387.80 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 123356.07 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 329182.49 ms /   811 tokens (  405.90 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 329242.86 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 210174.59 ms /   584 tokens (  359.89 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 210206.57 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 81113.52 ms /   286 tokens (  283.61 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 81134.54 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 439253.03 ms /   727 tokens (  604.20 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 439387.22 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 286354.39 ms /   751 tokens (  381.30 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 286420.33 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 444201.68 ms /   675 tokens (  658.08 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 444267.37 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 607155.44 ms /   620 tokens (  979.28 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 607229.15 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 674110.08 ms /   708 tokens (  952.13 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 674200.48 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 329078.28 ms /   470 tokens (  700.17 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 329136.29 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 774982.77 ms /   734 tokens ( 1055.83 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 775084.90 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1736656.90 ms /   767 tokens ( 2264.22 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1736891.33 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1348035.02 ms /   608 tokens ( 2217.16 ms per token)
llama_print_timings:        eval time = 24584.54 ms /     1 runs   (24584.54 ms per run)
llama_print_timings:       total time = 1372887.22 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1395140.63 ms /   472 tokens ( 2955.81 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1395354.86 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2404735.92 ms /   808 tokens ( 2976.16 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2405157.08 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1788561.84 ms /   640 tokens ( 2794.63 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1788744.43 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2043317.53 ms /   690 tokens ( 2961.33 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2043549.39 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1295899.29 ms /   402 tokens ( 3223.63 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1296069.46 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1882245.78 ms /   592 tokens ( 3179.47 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1882491.04 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 2343689.96 ms /   741 tokens ( 3162.87 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 2343993.29 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 1234739.82 ms /   490 tokens ( 2519.88 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 1234957.50 ms

llama_print_timings:        load time =  8850.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 86554.06 ms /    53 tokens ( 1633.10 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 86652.29 ms
In [ ]:
import pickle
# Save vectorstore
with open('vectorstore_13B_1024.pkl', 'wb') as f:
    pickle.dump(vectorstore, f)
In [ ]:
import pickle
# Load vectorstore
with open('vectorstore_13B_1024.pkl', 'rb') as f:
    vectorstore = pickle.load(f)
llama.cpp: loading model from /Users/saintway/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 1024
llama_model_load_internal: n_embd     = 5120
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 40
llama_model_load_internal: n_layer    = 40
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 13824
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 13B
llama_model_load_internal: ggml ctx size =  73.73 KB
llama_model_load_internal: mem required  = 11359.03 MB (+ 3216.00 MB per state)
llama_init_from_file: kv self size  = 1600.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 
In [ ]:
question = '你知道什么?'
In [ ]:
# Get context related to the question from the embedding model
for context in vectorstore.similarity_search(question):
    print(f'{context}\n')
page_content='> 现在我们知道,事实上应当承认在主观的质和推断出来的客观世界之间有一种确切规定的、一义的配列关系。大量的经验材料告诉我们,我们可以发现,至少必须假设与所有经验唯一地联系着的“物理的”过程的存在。没有什么意识的质不可能受到作用于身体的力的影响。的确,我们甚至能够用一种简单的物理方法,例如吸进一种气体,就把意识全部消除掉。我们的行动与我们的意志经验相联系,幻觉与身体的疲惫相联系,抑郁症的发作与消化的紊乱相联系。为了研究这类相互联系,心的理论必须抛弃纯粹内省的方法而成为**生理的**心理学。只有这个学科才能在理论上达到对心理的东西的完全的知识。借助于这样一种心理学,我们就可以用概念和所与的主观的质相配列,正如我们能够用概念与推论出来的客观的质相配列一样。这样,主观的质就像客观的质一样成为可知的了。' metadata={'source': '_posts/ultimate-facts/Neuroscience.md'}

page_content='态度:认同、欣赏、尊重、重视、轻视、忽视、鄙视、反对\n客体所做:我对你的态度、你对我的态度、你对他的态度\n主体所想:我对你的态度、你对我的态度\n主体所说:我对他的态度、他对我的态度、他对你的态度\n对于某些次态度的记忆、拟构;怀疑、与、确信;\n你对我的态度、有正有误;作为某种主体效果的客体态度,对于客体态度的目标、意向;对于态度的态度、有正有误;\n渴望被重视、被认可、被理解、被公正地对待;\n虚荣;自负,轻视,反对、有正有误,对于他人的误解;对于自己态度的温和的怀疑;苏格拉底式教学法;偏见、综合比较,是,某种轻视;\n我对客体的态度:你对我的态度、你的确信,我的确信、我对你的态度;确信、对于确信的态度;我对自己的态度,耻辱之恨、丑陋之恨\n对于某种经历的认同。对于某种人生概括的认同。省略主语、所有格。怕丑。\n注意,是,自由的。?我是谁?' metadata={'source': '_posts/ultimate-facts/终极真实.md'}

page_content='> 我们刚刚知道自然科学借以掌握质的方法––形成量的概念的方法。我们必须提出的问题是,这种方法是不是也能够适用于主观的意识的质。按照我们前面所说,为了使这种方法能够加以运用,必须有与这些质充分确定地、唯一地联系着的空间变化。如果情况真的如此,那么这个问题就可以通过空间–时间的重合方法来解决,因而**测量**便是可能的。但是,这种重合的方法本质上就是进行物理的观察,而就内省法来说,却不存在物理的观察这种事情。由此立刻就可以得出结论:心理学沿着内省的途径决不可能达到知识的理想。因此,它必须尽量使用物理的观察方法来达到它的目的。但这是不是可能的呢?是不是有依存于意识的质的空间变化,就像例如在光学中干涉带的宽度依存于颜色,在电学中磁铁的偏转度依存于磁场的强度那样呢?' metadata={'source': '_posts/ultimate-facts/Neuroscience.md'}

page_content='---\n\n> \u3000\u3000有些权威认为,有必要把意识的内容 (content) 与“有意识状态的特性” (quality of being conscious) 或“意识本身” (consciousness as such) 区分开来²。这一划分与我的分类异曲同工。\n\u3000\u3000要想产生意识,必须先具备某些神经前提条件。我把这些条件称为 NCC_e。任一特定知觉的 NCC 都是局部作用的、高度特化的、转瞬即逝的,相比起来,NCC_e 的作用方式更全局化也更持久。要是没有相关的 NCC_e 的话,机体或许也还能有简单的行为,但在这样做时绝不会有意识(可能发生这种情形的某些病理条件将在第13章讨论)。根据定义可知,如果没有 NCC_e,就不可能形成任何 NCC。\n\u3000\u3000会不会有这样一种状态,即生物体虽然有意识,却意识不到任何具体内容?换句话说,NCC_e 能否脱离 NCC 而单独存在呢?某些冥想的目标就是要进入这种没有具体内容的意识形式³。但是在目前,还很难对它进行严格的分析。' metadata={'source': '_posts/ultimate-facts/Neuroscience.md'}

llama_print_timings:        load time = 15863.30 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 15862.61 ms /     8 tokens ( 1982.83 ms per token)
llama_print_timings:        eval time = 23200.83 ms /     1 runs   (23200.83 ms per run)
llama_print_timings:       total time = 39067.66 ms
In [ ]:
from langchain.chains.llm import LLMChain
from langchain.callbacks.base import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain.chains.chat_vector_db.prompts import CONDENSE_QUESTION_PROMPT, QA_PROMPT
from langchain.chains.question_answering import load_qa_chain
from langchain.vectorstores.base import VectorStore
from langchain.chains import ConversationalRetrievalChain
from langchain.chat_models import ChatOpenAI

# Callback function to stream answers to stdout.
manager = CallbackManager([StreamingStdOutCallbackHandler()])

streaming_llm = ChatOpenAI(streaming=True, callback_manager=manager, verbose=True, temperature=0)
question_gen_llm = ChatOpenAI(temperature=0, verbose=True, callback_manager=manager)
# Prompt to generate independent questions by incorporating chat history and a new question.
question_generator = LLMChain(llm=question_gen_llm, prompt=CONDENSE_QUESTION_PROMPT)
# Pass in documents and a standalone prompt to answer questions.
doc_chain = load_qa_chain(streaming_llm, chain_type='stuff', prompt=QA_PROMPT)
# Generate prompts from embedding model.
qa = ConversationalRetrievalChain(retriever=vectorstore.as_retriever(), combine_docs_chain=doc_chain, question_generator=question_generator)
In [ ]:
QA_PROMPT
Out[ ]:
PromptTemplate(input_variables=['context', 'question'], output_parser=None, partial_variables={}, template="Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.\n\n{context}\n\nQuestion: {question}\nHelpful Answer:", template_format='f-string', validate_template=True)

实际应用示例

测试环境设置

利用 iPyMock 进行测试:

在 PyTest 中,可以使用 monkeypatch 来替换导入的库,从而进行测试。 monkeypatch 是一个 pytest 内置的 fixture,用于替换运行时的变量和对象,以便在测试期间使用自定义值。

对于要替换的库,可以使用 pytest_mock fixture 来自动将其传递给 monkeypatch。如果没有使用 pytest_mock,则需要手动使用 monkeypatch.setattr() 方法来替换导入的库。

以下是一个示例,假设我们有一个名为 example.py 的模块,它导入了 requests 库,并使用了该库的 get() 方法发送网络请求:

import requests

def get_example_data():
    response = requests.get('https://example.com')
    return response.content

要测试这个函数,我们需要使用 Dummy 对象替换 requests 库,以便我们可以模拟网络请求的响应。可以使用以下代码进行测试:

import pytest
import example

class DummyResponse:
    def __init__(self, content):
        self.content = content

@pytest.fixture
def mock_requests(monkeypatch):
    def mock_get(*args, **kwargs):
        return DummyResponse(b'Test data')
    monkeypatch.setattr(requests, 'get', mock_get)

def test_get_example_data(mock_requests):
    data = example.get_example_data()
    assert data == b'Test data'

在这个示例中,我们首先定义了一个名为 DummyResponse 的类,它代表了一个虚拟的 requests 库的响应。然后我们定义了一个名为 mock_requests 的 fixture,它使用 monkeypatch.setattr() 方法替换了 requests 库的 get() 方法,使其返回我们定义的 DummyResponse 对象。

最后,我们定义了一个测试函数 test_get_example_data,并将 mock_requests fixture 作为参数传递给它。在测试函数内部,我们调用 example.get_example_data(),这将调用我们已经用 Dummy 对象替换的 requests 库的 get() 方法,最终返回我们定义的虚拟响应。

这样我们就可以在测试中使用 Dummy 对象替换任何库,以便更好地控制测试环境。

In [ ]:
import openai
In [ ]:
help(openai.ChatCompletion.create)
Help on method create in module openai.api_resources.chat_completion:

create(*args, **kwargs) method of builtins.type instance
    Creates a new chat completion for the provided messages and parameters.
    
    See https://platform.openai.com/docs/api-reference/chat-completions/create
    for a list of valid parameters.

In [ ]:
import json, os
from revChatGPT.V1 import Chatbot, configure

# Open the JSON file and read the conversation_id
with open(os.path.expanduser('~/.config/revChatGPT/config.json'), 'r') as f:
    conversation_id = json.load(f).get('conversation_id', None)

bot = Chatbot(
    config = configure(),
    conversation_id = conversation_id,
    lazy_loading = True
)
In [ ]:
%%bash
pip install --upgrade git+https://github.com/seii-saintway/ipymock
In [ ]:
import pytest
In [ ]:
import markdown
import IPython

流式处理

学习如何处理流式补全:

In [ ]:
def delta(prompt):
    res = ''
    for response in bot.ask(prompt):
        # IPython.display.display(IPython.core.display.Markdown(response['message']))
        # IPython.display.clear_output(wait=True)
        yield {
            'choices': [
                {
                    'index': 0,
                    'delta': {
                        'content': response['message'][len(res):],
                    }
                }
            ],
        }
        res = response['message']

def mock_create(*args, **kwargs):
    for message in kwargs['messages']:
        if message['role'] == 'user':
            break
    else:
        return {
            'choices': [{}],
        }

    if kwargs.get('stream', False):
        return delta(message['content'])

    for response in bot.ask(message['content']):
        # IPython.display.display(IPython.core.display.Markdown(response['message']))
        # IPython.display.clear_output(wait=True)
        pass
    return {
        'choices': [
            {
                'finish_reason': 'stop',
                'index': 0,
                'message': {
                    'content': response['message'],
                    'role': 'assistant',
                }
            }
        ],
    }
In [ ]:
@pytest.fixture
def mock_openai(monkeypatch):
    monkeypatch.setattr(openai.ChatCompletion, 'create', mock_create)
In [ ]:
question = '终极真实是什么?'
In [ ]:
answer = {}
In [ ]:
def test_qa(mock_openai):
    global answer
    answer = qa({'question': question, 'chat_history': []})
    print('\n')
    assert isinstance(answer, dict)
In [ ]:
from ipymock import do
In [ ]:
do(
    mock_openai=mock_openai,
    test_qa=test_qa,
)
=> no.0  ::source::test_qa  setup  passed

llama_print_timings:        load time = 14550.38 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 23539.97 ms /    15 tokens ( 1569.33 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 23551.68 ms
The author argues that to study the interconnections between subjective experiences and physical processes, we need to move away from purely introspective methods and embrace physiological psychology. Only through this approach can we achieve a complete understanding of psychological phenomena. The author also suggests that consciousness is inextricably linked to physical processes and can be affected by them.

=> no.0  ::source::test_qa  runtest  passed

In [ ]:
answer
Out[ ]:
{'question': '终极真实是什么?',
 'chat_history': [],
 'answer': 'The author argues that to study the interconnections between subjective experiences and physical processes, we need to move away from purely introspective methods and embrace physiological psychology. Only through this approach can we achieve a complete understanding of psychological phenomena. The author also suggests that consciousness is inextricably linked to physical processes and can be affected by them.'}
  • Chat with Open Large Language Models
    • Vicuna: a chat assistant fine-tuned from LLaMA on user-shared conversations. This one is expected to perform best according to our evaluation.
    • Koala: a chatbot fine-tuned from LLaMA on user-shared conversations and open-source datasets. This one performs similarly to Vicuna.
    • ChatGLM: an open bilingual dialogue language model | 开源双语对话语言模型
    • Alpaca: a model fine-tuned from LLaMA on 52K instruction-following demonstrations.
    • LLaMA: open and efficient foundation language models

I recommend using gpt4 x alpaca ggml as a base model as it doesn't have the same level of censorship as vicuna. However, if you're using it purely for ethical tasks, vicuna is definitely better.


In [ ]:
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id='Pi3141/alpaca-lora-7B-ggml', filename='ggml-model-q4_0.bin', resume_download=True)
Downloading ggml-model-q4_0.bin:   0%|          | 0.00/4.21G [00:00<?, ?B/s]
Out[ ]:
'/Users/saintway/.cache/huggingface/hub/models--Pi3141--alpaca-lora-7B-ggml/snapshots/fec53813efae6495f9b1f14aa4dedffc07bbf2e0/ggml-model-q4_0.bin'
In [ ]:
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id='Pi3141/alpaca-lora-7B-ggml', filename='ggml-model-q4_1.bin', resume_download=True)
Downloading ggml-model-q4_1.bin:   0%|          | 0.00/5.06G [00:00<?, ?B/s]
Out[ ]:
'/Users/saintway/.cache/huggingface/hub/models--Pi3141--alpaca-lora-7B-ggml/snapshots/fec53813efae6495f9b1f14aa4dedffc07bbf2e0/ggml-model-q4_1.bin'

In [ ]:
%%bash
pip install llama-cpp-python[server]
In [ ]:
%%bash
export MODEL=~/ggml-model-q4_1.bin
python3 -m llama_cpp.server
llama.cpp: loading model from /Users/saintway/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 2048
llama_model_load_internal: n_embd     = 5120
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 40
llama_model_load_internal: n_layer    = 40
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 13824
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 13B
llama_model_load_internal: ggml ctx size =  73.73 KB
llama_model_load_internal: mem required  = 11359.03 MB (+ 1608.00 MB per state)
llama_init_from_file: kv self size  = 1600.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 
INFO:     Started server process [41176]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)
INFO:     ::1:61438 - "GET / HTTP/1.1" 404 Not Found
INFO:     ::1:61438 - "GET /docs HTTP/1.1" 200 OK
INFO:     ::1:61438 - "GET /openapi.json HTTP/1.1" 200 OK
llama_print_timings:        load time = 11679.89 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 240847.82 ms /   478 tokens (  503.87 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 240873.74 ms
INFO:     ::1:61439 - "POST /v1/embeddings HTTP/1.1" 200 OK
llama_print_timings:        load time = 11679.89 ms
llama_print_timings:      sample time =    33.43 ms /    16 runs   (    2.09 ms per run)
llama_print_timings: prompt eval time = 255305.21 ms /   478 tokens (  534.11 ms per token)
llama_print_timings:        eval time = 28069.18 ms /    15 runs   ( 1871.28 ms per run)
llama_print_timings:       total time = 283470.31 ms
INFO:     ::1:61681 - "POST /v1/completions HTTP/1.1" 200 OK

In [ ]:
import os
from llama_cpp import Llama
llm = Llama(model_path=os.path.expanduser('~/ggml-model-q4_1.bin'))
llama.cpp: loading model from /Users/saintway/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 512
llama_model_load_internal: n_embd     = 5120
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 40
llama_model_load_internal: n_layer    = 40
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 13824
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 13B
llama_model_load_internal: ggml ctx size =  73.73 KB
llama_model_load_internal: mem required  = 11359.03 MB (+ 3216.00 MB per state)
llama_init_from_file: kv self size  =  800.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 
In [ ]:
llm.tokenize('''> 我们刚刚知道自然科学借以掌握质的方法––形成量的概念的方法。我们必须提出的问题是,这种方法是不是也能够适用于主观的意识的质。按照我们前面所说,为了使这种方法能够加以运用,必须有与这些质充分确定地、唯一地联系着的空间变化。如果情况真的如此,那么这个问题就可以通过空间–时间的重合方法来解决,因而**测量**便是可能的。但是,这种重合的方法本质上就是进行物理的观察,而就内省法来说,却不存在物理的观察这种事情。由此立刻就可以得出结论:心理学沿着内省的途径决不可能达到知识的理想。因此,它必须尽量使用物理的观察方法来达到它的目的。但这是不是可能的呢?是不是有依存于意识的质的空间变化,就像例如在光学中干涉带的宽度依存于颜色,在电学中磁铁的偏转度依存于磁场的强度那样呢?'''.encode('utf8'))
In [ ]:
llm.tokenize('''> 现在我们知道,事实上应当承认在主观的质和推断出来的客观世界之间有一种确切规定的、一义的配列关系。大量的经验材料告诉我们,我们可以发现,至少必须假设与所有经验唯一地联系着的“物理的”过程的存在。没有什么意识的质不可能受到作用于身体的力的影响。的确,我们甚至能够用一种简单的物理方法,例如吸进一种气体,就把意识全部消除掉。我们的行动与我们的意志经验相联系,幻觉与身体的疲惫相联系,抑郁症的发作与消化的紊乱相联系。为了研究这类相互联系,心的理论必须抛弃纯粹内省的方法而成为**生理的**心理学。只有这个学科才能在理论上达到对心理的东西的完全的知识。借助于这样一种心理学,我们就可以用概念和所与的主观的质相配列,正如我们能够用概念与推论出来的客观的质相配列一样。这样,主观的质就像客观的质一样成为可知的了。'''.encode('utf8'))

In [ ]:
from langchain.document_loaders import DirectoryLoader, TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
In [ ]:
def get_docs(dir_name):
    # (1) Import a series of documents.
    loader = DirectoryLoader(dir_name, loader_cls=TextLoader, silent_errors=True)
    raw_documents = loader.load()
    # (2) Split them into small chunks.
    text_splitter = RecursiveCharacterTextSplitter(
        chunk_size=1024,
        chunk_overlap=64,
    )
    return text_splitter.split_documents(raw_documents)

In [ ]:
import os
from langchain.embeddings import LlamaCppEmbeddings
from langchain.vectorstores.faiss import FAISS
In [ ]:
def ingest_docs(dir_name):
    documents = get_docs(dir_name)
    # (3) Create embeddings for each document (using text-embedding-ada-002).
    embeddings = LlamaCppEmbeddings(model_path=os.path.expanduser(
        '~/.cache/huggingface/hub/models--Pi3141--alpaca-lora-7B-ggml/snapshots/fec53813efae6495f9b1f14aa4dedffc07bbf2e0/ggml-model-q4_1.bin'
    ), n_ctx=2048)
    return FAISS.from_documents(documents, embeddings)

vectorstore = ingest_docs('_posts/ultimate-facts')
llama.cpp: loading model from /Users/saintway/.cache/huggingface/hub/models--Pi3141--alpaca-lora-7B-ggml/snapshots/fec53813efae6495f9b1f14aa4dedffc07bbf2e0/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 2048
llama_model_load_internal: n_embd     = 4096
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 32
llama_model_load_internal: n_layer    = 32
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 11008
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 7B
llama_model_load_internal: ggml ctx size =  59.11 KB
llama_model_load_internal: mem required  = 6612.57 MB (+ 2052.00 MB per state)
llama_init_from_file: kv self size  = 2048.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 121567.27 ms /   607 tokens (  200.28 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 121578.08 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 55477.99 ms /   384 tokens (  144.47 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 55490.11 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 185983.50 ms /  1245 tokens (  149.38 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 185993.29 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 99895.20 ms /   648 tokens (  154.16 ms per token)
llama_print_timings:        eval time =   274.67 ms /     1 runs   (  274.67 ms per run)
llama_print_timings:       total time = 100174.12 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time =  4480.73 ms /    30 tokens (  149.36 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time =  4483.89 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 34421.56 ms /   208 tokens (  165.49 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 34428.46 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 18916.80 ms /   115 tokens (  164.49 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 18922.95 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 109097.79 ms /   672 tokens (  162.35 ms per token)
llama_print_timings:        eval time =   322.11 ms /     1 runs   (  322.11 ms per run)
llama_print_timings:       total time = 109426.49 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 182994.18 ms /  1131 tokens (  161.80 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 183004.98 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 159320.01 ms /  1040 tokens (  153.19 ms per token)
llama_print_timings:        eval time =   239.12 ms /     1 runs   (  239.12 ms per run)
llama_print_timings:       total time = 159568.61 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 239876.70 ms /  1530 tokens (  156.78 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 239888.82 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 217347.31 ms /  1428 tokens (  152.20 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 217358.50 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 191811.75 ms /  1255 tokens (  152.84 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 191821.81 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 226394.03 ms /  1406 tokens (  161.02 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 226403.94 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 250274.44 ms /  1514 tokens (  165.31 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 250290.90 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 245848.18 ms /  1459 tokens (  168.50 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 245869.09 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 241036.46 ms /  1448 tokens (  166.46 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 241046.69 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 90638.96 ms /   549 tokens (  165.10 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 90648.73 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 243383.44 ms /  1456 tokens (  167.16 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 243395.79 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 66549.32 ms /   407 tokens (  163.51 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 66557.07 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 254780.55 ms /  1524 tokens (  167.18 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 254791.22 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 63349.78 ms /   397 tokens (  159.57 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 63354.36 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 174274.05 ms /  1092 tokens (  159.59 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 174282.70 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 194346.63 ms /  1332 tokens (  145.91 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 194358.84 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 69352.89 ms /   490 tokens (  141.54 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 69357.43 ms

llama_print_timings:        load time =  9764.51 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time =  7361.54 ms /    53 tokens (  138.90 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time =  7371.77 ms

I need a big memory to accelerate LLM inference.

In [ ]:
import pickle
In [ ]:
# Save vectorstore
with open('vectorstore_7B_2048.pkl', 'wb') as f:
    pickle.dump(vectorstore, f)
In [ ]:
# Load vectorstore
with open('vectorstore_7B_2048.pkl', 'rb') as f:
    vectorstore = pickle.load(f)
llama.cpp: loading model from /Users/saintway/.cache/huggingface/hub/models--Pi3141--alpaca-lora-7B-ggml/snapshots/fec53813efae6495f9b1f14aa4dedffc07bbf2e0/ggml-model-q4_1.bin
llama_model_load_internal: format     = ggjt v1 (latest)
llama_model_load_internal: n_vocab    = 32000
llama_model_load_internal: n_ctx      = 2048
llama_model_load_internal: n_embd     = 4096
llama_model_load_internal: n_mult     = 256
llama_model_load_internal: n_head     = 32
llama_model_load_internal: n_layer    = 32
llama_model_load_internal: n_rot      = 128
llama_model_load_internal: f16        = 3
llama_model_load_internal: n_ff       = 11008
llama_model_load_internal: n_parts    = 1
llama_model_load_internal: model size = 7B
llama_model_load_internal: ggml ctx size =  59.11 KB
llama_model_load_internal: mem required  = 6612.57 MB (+ 2052.00 MB per state)
llama_init_from_file: kv self size  = 2048.00 MB
AVX = 1 | AVX2 = 1 | AVX512 = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 1 | VSX = 0 | 

In [ ]:
question = '你知道什么?'
In [ ]:
# Get context related to the question from the embedding model
for context in vectorstore.similarity_search(question):
    print(f'{context}\n')
page_content='title: Neuroscience\ndate: 2021-10-14 16:30:20\ntags: Neuro\n---\n\nThe [**ventral tegmental area**](https://en.wikipedia.org/wiki/Ventral_tegmental_area) (**VTA**) (**tegmentum** is Latin for covering), also known as the **ventral tegmental area of Tsai**, or simply **ventral tegmentum**, is a group of neurons located close to the midline on the floor of the midbrain.\n\n---\n\n> \u3000\u3000有些权威认为,有必要把意识的内容 (content) 与“有意识状态的特性” (quality of being conscious) 或“意识本身” (consciousness as such) 区分开来²。这一划分与我的分类异曲同工。\n\u3000\u3000要想产生意识,必须先具备某些神经前提条件。我把这些条件称为 NCC_e。任一特定知觉的 NCC 都是局部作用的、高度特化的、转瞬即逝的,相比起来,NCC_e 的作用方式更全局化也更持久。要是没有相关的 NCC_e 的话,机体或许也还能有简单的行为,但在这样做时绝不会有意识(可能发生这种情形的某些病理条件将在第13章讨论)。根据定义可知,如果没有 NCC_e,就不可能形成任何 NCC。\n\u3000\u3000会不会有这样一种状态,即生物体虽然有意识,却意识不到任何具体内容?换句话说,NCC_e 能否脱离 NCC 而单独存在呢?某些冥想的目标就是要进入这种没有具体内容的意识形式³。但是在目前,还很难对它进行严格的分析。' metadata={'source': '_posts/ultimate-facts/Neuroscience.md'}

page_content='有意注意,是指,对于某次效果的注意。\n无意注意,是指,对于某次非效果的注意。\n\n目标,是指,对于某种效果的某些次记忆所联结着的对于此种效果的拟构。\n意向,是指,对于某些种效果的某些次记忆所联结着的对于某种效果的拟构。\n\n懊悔,是指,对于某次弊害效果的某次记忆、对于某次功效的某次记忆所联结着的对于某次功效的拟构。\n焦虑,是指,对于某次弊害效果的某次记忆、对于某次功效的某次意向所联结着的对于某次弊害效果的拟构。\n\n对于某次功效的目标,联结着,对于此次功效的原因。\n对于某种功效的概括,联结着,对于此种功效的原因。\n\n兴趣,是指,联结着某次快乐的识。\n荒诞,是指,联结着某次乏味的识。\n苦毒,是指,联结着某次痛苦的识。\n\n慾望,是指,对于某次兴趣的表征。\n妄想,是指,对于某次荒诞的表征。?\n苦观,是指,对于某次苦毒的表征。\n\n苦观,分为,记忆苦观、拟构苦观。弊害,…、…\n\n有趣注意,是指,对于某次兴趣的注意。\n无趣注意,是指,对于某次荒诞的注意。\n\n意义,是指,值得的注意。\n神圣,是指,极其丰富的意义。\n积极的态度,是指,充满对于某种意义的信心。\n消极的态度,是指,缺乏对于某种意义的信心。\n积极的注意,导致着,快乐。\n消极的注意,导致着,乏味。\n对于某种意义的怀疑,是指,对于某种意义的信心的减弱。\n对于某种意义的确定,是指,对于某种意义的信心的增强。\n对于某种意义的静思,是指,对于某种意义的减弱。对于某种意义的静思,导致着,忧郁。\n对于某种意义的禅修,是指,对于某种意义的增强。对于某种意义的禅修,导致着,幸福。\n静思、禅修、祷告,都是,某种定觉练习。\n\n---\n\n> 因为我们得了救是因着盼望。只是所盼望的若已得看见,便不是盼望了;因为人所看见的、他何必还盼望呢?但我们若盼望所未看见的,就必坚忍切候着。\n(罗马书 8:24-25 吕振中)\n\n> 所以青春性的私欲、你总要逃避;你要跟那些用洁净心呼求主的人一同追求正义、忠信、仁爱、和平。\n(提摩太后书 2:22 吕振中)\n\n向内往最深处去:净心、呼求主名、并且、等待回应。' metadata={'source': '_posts/ultimate-facts/终极真实.md'}

page_content='> 我们刚刚知道自然科学借以掌握质的方法––形成量的概念的方法。我们必须提出的问题是,这种方法是不是也能够适用于主观的意识的质。按照我们前面所说,为了使这种方法能够加以运用,必须有与这些质充分确定地、唯一地联系着的空间变化。如果情况真的如此,那么这个问题就可以通过空间–时间的重合方法来解决,因而**测量**便是可能的。但是,这种重合的方法本质上就是进行物理的观察,而就内省法来说,却不存在物理的观察这种事情。由此立刻就可以得出结论:心理学沿着内省的途径决不可能达到知识的理想。因此,它必须尽量使用物理的观察方法来达到它的目的。但这是不是可能的呢?是不是有依存于意识的质的空间变化,就像例如在光学中干涉带的宽度依存于颜色,在电学中磁铁的偏转度依存于磁场的强度那样呢?\n> 现在我们知道,事实上应当承认在主观的质和推断出来的客观世界之间有一种确切规定的、一义的配列关系。大量的经验材料告诉我们,我们可以发现,至少必须假设与所有经验唯一地联系着的“物理的”过程的存在。没有什么意识的质不可能受到作用于身体的力的影响。的确,我们甚至能够用一种简单的物理方法,例如吸进一种气体,就把意识全部消除掉。我们的行动与我们的意志经验相联系,幻觉与身体的疲惫相联系,抑郁症的发作与消化的紊乱相联系。为了研究这类相互联系,心的理论必须抛弃纯粹内省的方法而成为**生理的**心理学。只有这个学科才能在理论上达到对心理的东西的完全的知识。借助于这样一种心理学,我们就可以用概念和所与的主观的质相配列,正如我们能够用概念与推论出来的客观的质相配列一样。这样,主观的质就像客观的质一样成为可知的了。\n> 我们很早就指出,客观世界中最直接地与自我的主观的质相联系的部分就是由大脑的概念,特别是大脑皮层的概念所表示的那一部分。因而在科学知识的精确的世界图景中,可用数值描述的概念代替的主观质的,只是某些大脑过程。相互依存的分析不可避免要引向这些大脑过程。虽然我们还远没有确切地知道所涉及的是何种个别的过程,但至少指出了一条途径:必须以大脑过程来代替主观的质。这就是我们能够充分认识主观的质所具有的唯一的希望。\n> ……' metadata={'source': '_posts/ultimate-facts/Neuroscience.md'}

page_content='客体方式,导致着、联结着,主体方式、机体状态\n形体,导致着、联结着,身体、快乐、痛苦\n轻蔑、轻视他人对自己的态度,损害着,羞耻心\n羞耻,对于亲密程度的重视;我们在争辩的时候,真正损害着羞耻心的,实际上是,轻视他人对自己的态度,而不是,轻视他人的(由父所创造的)信念?\n羞耻、光荣,重视他人对自己的态度、敬重\n恥辱、傲慢,轻视他人对自己的态度、轻蔑\n羞耻、羞辱,在含义上,有所不同吗?\n单方的轻视、双方的轻视?\n一方,是,非吾所显明出来的罪;一方,是,吾所显明出来的罪。\n狭隘、愚蠢、固执,轻视他人的信念\n开明、智慧、变通,重视他人的信念' metadata={'source': '_posts/ultimate-facts/终极真实.md'}

llama_print_timings:        load time = 14467.91 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 14467.34 ms /     8 tokens ( 1808.42 ms per token)
llama_print_timings:        eval time = 14635.33 ms /     1 runs   (14635.33 ms per run)
llama_print_timings:       total time = 29115.01 ms

In [ ]:
# from langchain.chains.chat_vector_db.prompts import CONDENSE_QUESTION_PROMPT, QA_PROMPT
In [ ]:
from langchain.prompts import PromptTemplate

CONDENSE_QUESTION_PROMPT = PromptTemplate(
    input_variables=['chat_history', 'question'],
    output_parser=None, partial_variables={},
    template='给定以下对话和后续问题,请重新表述后续问题以成为一个独立问题。\n\n聊天记录:\n{chat_history}\n后续问题:{question}\n独立问题:',
    template_format='f-string',
    validate_template=True
)

QA_PROMPT = PromptTemplate(
    input_variables=['context', 'question'],
    output_parser=None, partial_variables={},
    template='使用下面的背景信息回答最后的问题。如果您不知道答案,请直接说您不知道,不要试图编造一个答案。\n\n背景信息:\n{context}\n\n问题:{question}\n有用的答案:',
    template_format='f-string',
    validate_template=True
)
In [ ]:
from langchain.chains.llm import LLMChain
from langchain.callbacks.base import CallbackManager
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
from langchain.chains.question_answering import load_qa_chain
from langchain.vectorstores.base import VectorStore
from langchain.chains import ConversationalRetrievalChain
from langchain.chat_models import ChatOpenAI

# Callback function to stream answers to stdout.
manager = CallbackManager([StreamingStdOutCallbackHandler()])

streaming_llm = ChatOpenAI(streaming=True, callback_manager=manager, verbose=True, temperature=0)
question_gen_llm = ChatOpenAI(temperature=0, verbose=True, callback_manager=manager)
# Prompt to generate independent questions by incorporating chat history and a new question.
question_generator = LLMChain(llm=question_gen_llm, prompt=CONDENSE_QUESTION_PROMPT)
# Pass in documents and a standalone prompt to answer questions.
doc_chain = load_qa_chain(streaming_llm, chain_type='stuff', prompt=QA_PROMPT)
# Generate prompts from embedding model.
qa = ConversationalRetrievalChain(retriever=vectorstore.as_retriever(), combine_docs_chain=doc_chain, question_generator=question_generator)
In [ ]:
import openai
In [ ]:
import json, os
from revChatGPT.V1 import Chatbot, configure

# Open the JSON file and read the conversation_id
with open(os.path.expanduser('~/.config/revChatGPT/config.json'), 'r') as f:
    conversation_id = json.load(f).get('conversation_id', None)

bot = Chatbot(
    config = configure(),
    conversation_id = conversation_id,
    lazy_loading = True
)
In [ ]:
import pytest
In [ ]:
def delta(prompt):
    res = ''
    for response in bot.ask(prompt):
        yield {
            'choices': [
                {
                    'index': 0,
                    'delta': {
                        'content': response['message'][len(res):],
                    }
                }
            ],
        }
        res = response['message']

def mock_create(*args, **kwargs):
    for message in kwargs['messages']:
        if message['role'] == 'user':
            break
    else:
        return {
            'choices': [{}],
        }

    if kwargs.get('stream', False):
        return delta(message['content'])

    for response in bot.ask(message['content']):
        pass
    return {
        'choices': [
            {
                'finish_reason': 'stop',
                'index': 0,
                'message': {
                    'content': response['message'],
                    'role': 'assistant',
                }
            }
        ],
    }
In [ ]:
@pytest.fixture
def mock_openai(monkeypatch):
    monkeypatch.setattr(openai.ChatCompletion, 'create', mock_create)
In [ ]:
question = '终极真实是什么?'
In [ ]:
answer = {}
In [ ]:
def test_qa(mock_openai):
    global answer
    answer = qa({'question': question, 'chat_history': []})
    print('\n')
    assert isinstance(answer, dict)
In [ ]:
from ipymock import do
In [ ]:
do(
    mock_openai=mock_openai,
    test_qa=test_qa,
)
=> no.0  ::source::test_qa  setup  passed

llama_print_timings:        load time = 14467.91 ms
llama_print_timings:      sample time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings: prompt eval time = 22490.19 ms /    15 tokens ( 1499.35 ms per token)
llama_print_timings:        eval time =     0.00 ms /     1 runs   (    0.00 ms per run)
llama_print_timings:       total time = 22496.21 ms
根据提供的背景信息,以下是问题的答案:

此处引用的文章是哪位心理学家写的? 

这篇文章是由德国心理学家威廉·威廉德撰写的,标题是《心理学的目标和方法》。

=> no.0  ::source::test_qa  runtest  passed

In [ ]:
answer
Out[ ]:
{'question': '终极真实是什么?',
 'chat_history': [],
 'answer': '根据提供的背景信息,以下是问题的答案:\n\n此处引用的文章是哪位心理学家写的? \n\n这篇文章是由德国心理学家威廉·威廉德撰写的,标题是《心理学的目标和方法》。'}
Read More

2023-04-11
LLaMA Index

LLaMA Index 使用教程

LLaMA Index(现已更名为 LlamaIndex)是一个数据框架,用于构建基于 LLM 的应用程序。它提供了一套工具来索引和查询文档,使大语言模型能够访问外部数据。

相关资源

In [ ]:
%%bash
pip install llama-index
Installing collected packages: llama-index
Successfully installed llama-index-0.5.12

基础用法

使用 OpenAI 嵌入模型

首先尝试使用默认的 OpenAI 嵌入模型来构建索引:

参考资源

In [ ]:
index_name = './index.json'
In [ ]:
from llama_index import GPTSimpleVectorIndex
In [ ]:
index = GPTSimpleVectorIndex.load_from_disk(index_name)
index = GPTSimpleVectorIndex([])
index.save_to_disk(index_name)
In [ ]:
from llama_index import SimpleDirectoryReader
In [ ]:
documents = SimpleDirectoryReader('../_posts/ultimate-facts').load_data()
print(documents)
[Document(text='\n\nSystems Neuroscience\n\n**Systems neuroscience** is a subdiscipline of neuroscience and systems biology that studies the structure and function of neural circuits and systems. Systems neuroscience encompasses a number of areas of study concerned with how nerve cells behave when connected together to form neural pathways, neural circuits, and larger brain networks. At this level of analysis, neuroscientists study how different neural circuits analyze sensory information, form perceptions of the external world, make decisions, and execute movements. Researchers in systems neuroscience are concerned with the relation between molecular and cellular approaches to understanding brain structure and function, as well as with the study of high-level mental functions such as language, memory, and self-awareness (which are the purview of behavioral and cognitive neuroscience). Systems neuroscientists typically employ techniques for understanding networks of neurons as they are seen to function, by way of electrophysiology using either single-unit recording or multi-electrode recording, functional magnetic resonance imaging (fMRI), and PET scans. The term is commonly used in an educational framework: a common sequence of graduate school neuroscience courses consists of cellular/molecular neuroscience for the first semester, then systems neuroscience for the second semester. It is also sometimes used to distinguish a subdivision within a neuroscience department at an academic institution.\n\n', doc_id='3fd9301a-cfdf-49e9-a534-4aaf48f58f8f', embedding=None, doc_hash='19f1397f0b2cd476a1fd12c789321a4414f9e09be786df63f46892adee2c3b99', extra_info=None), Document(text='\n\nシステム神経科学\n\n**システム神経科学**(しすてむしんけいかがく、英: **Systems neuroscience**)は神経科学の下位分野で、覚醒し、行動する正常な生物の神経回路や神経システムの機能を研究する。システム神経科学は、神経細胞が結合してニューラル・ネットワークを作った時にどのようにふるまうのか (例えば、視覚や自発運動など) を研究する様々な分野の総称である。この分野では、神経科学者は異なる神経回路がどのようにして感覚情報を分析し、外的環境を認識し、意思決定を行い、運動を実行するかを研究している。システム神経科学に関心がある研究者は脳に対する分子神経科学や細胞神経科学的なアプローチと、行動神経科学や認知神経科学のおもな守備範囲である言語や、記憶、自己認識のような高次精神活動の間にある大きな溝に着目している。自らの主な分野をシステム神経科学としている研究者は少なく、たいていの場合はより詳細に "行動神経科学" や "認知神経生理学" としている。この用語は主に、大学院の神経科学コースなどで、1学期の講義は分子/細胞神経科学、2学期の講義はシステム神経科学というように教育分野で使われる。また、時には学術機関の神経科学科内で分野を区別するために使われることもある。\n\n', doc_id='24bff9fe-e8dd-425e-b62e-daca67473e78', embedding=None, doc_hash='81e85f6b10f98753bf6d06b5aa1a31e8d88632e8e10d1b4e0831f353c0c8d79a', extra_info=None), Document(text='title: 研究机构date: 2008-08-20 18:05:20tags:---{% asset_ipynb 研究机构.ipynb %}', doc_id='e6b10168-64ff-41f6-ba7a-6635f190405c', embedding=None, doc_hash='3ab4d5b4234162b96b8634c7686454f32a9cb9635567917e1a563b20a2085944', extra_info=None), Document(text='title: 从「意义疗法」开始追求「终极真实」date: 2015-09-23 13:40:00tags: UltimateFacts---* 自从受浸以来,我总是会动弹不得而禁食。为此,我感到非常羞耻。有一次禁食后,我下床昏倒。醒来后,我心里有声音提醒我说,我还要去解答那三个关于自我意识的问题。一听到这声音,我就得平安并且开始恢复吃饭。其实,这三个问题也是我之前一直思考并且想要解答的问题。只是,我还是犹豫不决,因为我并不知道这声音从谁而来。我看到的解答是对宗教核心的摧毁。--凡所信的都将被实证。--我想,贵主若是意愿如此,那就让事情这么成就吧。* 孜孜不倦地追求着终极真实。  孜孜不倦地追问着终极问题:我是谁?我从哪里来?我往哪里去?  在爱里寻找着终极解答:我就是爱;我从爱里来,我往爱里去。* 我们借用数学在异质的真实中发现同质的真实;而终极的真实却是异质的。* 追求「幸福」?还是,追求「真实」?  * 你是赌徒。你是冒险者。难道还追求幸运吗?不是应该相信幸运和爱吗?要用智慧行事。要争取时机。  * 你们若追求终极真实而受苦,你们也必被断为配得这份终极荣耀。你们既在追求终极真实的受苦上有多少分儿,就该有多少喜乐,使你们在这份终极荣耀显示的时候也可以欢喜快乐。你们若因做终极冒死者而受苦,就别惭愧了,也别灰心丧志了,倒要因有这名而荣耀永恒主呢。* 这是一份草稿,记录着我这几年以来思考:---> 自从造天地以来,\u3000神那看不见的永能和神性是明明可觉的,乃是藉着所造之物就可以晓得,叫人无可推诿。 (罗马书 1:20)> 至於他的事、人所不能見的——他永久的能力及神性——從世界之創立以來,又是藉着他所造之物以被了悟而看清楚,使人無可推諉。 (羅馬書 1:20 呂振中)> For the invisible things of Him, both His eternal power and divine characteristics, have been clearly seen since the creation of the world, being perceived by the things made, so that they would be without excuse; (Romans 1:20 Recovery)> For since the creation of the world His invisible attributes, that is, His eternal power and divine nature, have been clearly perceived, being understood by what has been made, so that they are without excuse. (Romans 1:20 NASB)真理、真实;神造真实、人造真实;真实,想象;记忆,拟构。如果哲学更像「真理」,那么各类科学就更像「真实」。如果物理学更像「真理」,那么化学就更像「真实」。如果化学更像「真理」,那么生物学、生理学就更像「真实」。如果生理学更像「真理」,那么脑科学、神经科学就更像「真实」。如果理科更像「神造真实」,那么工科就更像「人造真实」。如果生理学更像「神造真实」,那么医学、药学就更像「人造真实」。---> 我只是一个碳族生物;一个土生土长的地球人¹。贵主耶稣是灵族人吧。而木星上的风暴²可以拥有怎样的生命和意识呢?贵主耶稣在木星上能否与木星人一起生活和交往呢?> ¹ 地球人 => 《费曼讲座:宇称不守恒定律和如何与外星人交流》> ² 风暴 =>> 当那一天,到了傍晚,耶稣对他们说:『我们渡到那边去吧。』他们就离开群众,照他在船上的情况把他带走;还有别的船也跟他在一起。当下起了**大暴风**,波浪泼进船内,甚至船简直满了!耶稣竟在船尾上靠着枕头睡觉呢;门徒就叫醒了他,对他说:『老师,我们丧命,你不在意么?』耶稣醒起来,斥责³那风,向海说:『不要作声!噤默罢!』那风不狂吹,便大大平静了。耶稣对他们说:『为什么这么胆怯呢?怎么没有信心呢?』他们就大起了敬畏的心,直彼此说:『这个人到底是谁?连风和海也听从他!』 (马可福音 4:35-41 吕振中)> ³ 斥责 => 『ワンパンマン』:サイタマ?キング?↓↓--------------------继续修订--------------------↓↓圣经信仰之神经心理学实证纲领父的自我信息,是指,对于圣灵的表征。纯粹的圣经,含于,父的自我信息。从「纯粹的基督徒」到「超基督徒」「超级赌徒」吾否认圣经中上帝的名,因为那是人们创造的。超越神论,不可知论;信仰;宁死不屈,抗争到底对于神圣生命的信心?或,亲密关系?坚贞,「甘愿承担自己的罪罚」是《古兰经》的价值所在。真诚、勇敢、坚贞,耶稣的「甘愿承担」是《圣经》的价值所在。吾,若不是因为怯懦,又怎么会祷告呢?所以,吾,应该要,放弃,那种、对于其他的心灵的畏惧、所联结着的祷告。以耶稣为榜样。人子要经受三日地狱之火的洗。罪全部被烧尽了后,第三日复活。我所爱慕的必定是父所喜爱的,因为父从始至终都在吸引我、塑造我的爱慕。我所爱慕的若是父所不喜爱的,父必定会改变我。所以,我总是晓得父的喜爱。人子,与父和好,与父为友,爱父并顺从祂。与父同在,就有勇气。与父同行,就有希望。子永远与父同在,从未分离。「吾要成为超人。」「在吾的生活中显明父的荣耀。」祷告,是,对于子灵的表征。感,分为,虚感、实感。虚感,分为,信(?)、思感、愉快感、位置感。实感,分为,色感、声感、香感、味感、触感、缩紧感、疼痛感、瘙痒感、冷热感。体,是指,广延。感、体,平行地,变化。感、体,分割的,平行性原理感的统合,预示着,体的核心。体的核心:在感的集合中占比最大的体。信,是一种,感。(联结?极深的记忆?)灵,是指,具有自我独特视角的、体。 => “我是谁?”《圣经》说:信、灵,平行地,变化。在苦难中持守坚忍为何能增加信心呢?魂,是指,具有私有视角(记忆?)的、体。(联结?) => “我在哪里?” => 寻找已睡了的灵(如,保罗) => 进入他们的梦境虚感、魂,平行地,变化。实感、身体(?),平行地,变化。识,是指,某些感的杂合、杂合体。已察,是指,主体所注意过的识。未察,是指,主体所没注意过的识。机体状态,是指,某些愉快感、位置感、疼痛感、瘙痒感、冷热感的杂合体。快乐,是指,某些愉快感的杂合。乏味,是指,某些非愉快感、位置感、缩紧感的杂合体。痛苦,是指,某些位置感、疼痛感的杂合体。舒适,是指,某些位置感、非疼痛感的杂合体。忧郁,是指,乏味痛苦。幸福,是指,快乐舒适。主体方式,分为,心思、身体。心思,是指,某些思感的杂合。身体,是指,某些位置感、缩紧感的杂合体。表征,是指,表征着某次识的心思。记忆,是指,对于某次已察的表征。 => “我在哪里?”拟构,是指,对于某次未察的表征。概括,是指,概括着某种识的心思。过去,是指,对于记忆的概括。未来,是指,对于拟构的概括。客体方式,是指,某些色感、声感、香感、味感、触感、冷热感的杂合体。形体,是指,某些位置感、色感的杂合体。声音,是指,某些位置感、声感的杂合体。气味,是指,某些位置感、香感的杂合体。口味,是指,某些位置感、味感的杂合体。质地,是指,某些位置感、触感的杂合体。温度,是指,某些位置感、冷热感的杂合体。主体所注意着的某些次主体方式的接续变化,导致着,此些次主体方式的接续联结。主体所注意着的某些次识的接续变化,导致着,对于此些次识的某些次记忆的接续联结。主体所注意着的某些次客体方式的接续变化,导致着,对于此些次客体方式的某些次记忆的接续联结。意志,是指,导致着某种接续联结的(其中可能还含有一种未提及的虚感)(联结的生成)生活,是指,接续联结着的某些次主体方式。思维,是指,接续联结着的某些次心思。动作,是指,接续联结着的某些次身体。意愿,是指,表征着某次意志的思维。意愿,是,独占的。情节,是指,接续联结着的某些次表征。臆测,是指,接续联结着的某些次记忆。臆想,是指,接续联结着的某些次拟构。经历,是指,接续联结着的对于接续变化着的某些次识的某些次记忆。综合,是指,接续联结着的对于接续变化着的某些次识的某些次拟构。最简拟构是记忆的最简杂合。最简综合是经历的最简接续。这是,语义理解和表达、产生会意和指称的联结,所需的最简方式。主体所注意着的对于某些识某些次绵延变化的某些次经历的接续联结,导致着,对于此种识的某次概括。主体所注意着的对于某些次接续变化的某些次经历的接续联结,导致着,对于此种经历的某次概括。原因,是指,导致着某次识的识。结果,是指,某次识所导致着的识。利益,是指,对于某次舒适的原因。弊害,是指,对于某次痛苦的原因。有利有弊,是指,对于某次舒适或某次痛苦的原因。效果,是指,对于某次意志的结果。功效,是指,利益效果、属于利益范畴的效果。有意注意,是指,对于某次效果的注意。无意注意,是指,对于某次非效果的注意。目标,是指,对于某种效果的某些次记忆所联结着的对于此种效果的拟构。意向,是指,对于某些种效果的某些次记忆所联结着的对于某种效果的拟构。懊悔,是指,对于某次弊害效果的某次记忆、对于某次功效的某次记忆所联结着的对于某次功效的拟构。焦虑,是指,对于某次弊害效果的某次记忆、对于某次功效的某次意向所联结着的对于某次弊害效果的拟构。对于某次功效的目标,联结着,对于此次功效的原因。对于某种功效的概括,联结着,对于此种功效的原因。兴趣,是指,联结着某次快乐的识。荒诞,是指,联结着某次乏味的识。苦毒,是指,联结着某次痛苦的识。慾望,是指,对于某次兴趣的表征。妄想,是指,对于某次荒诞的表征。?苦观,是指,对于某次苦毒的表征。苦观,分为,记忆苦观、拟构苦观。弊害,…、…有趣注意,是指,对于某次兴趣的注意。无趣注意,是指,对于某次荒诞的注意。意义,是指,值得的注意。神圣,是指,极其丰富的意义。积极的态度,是指,充满对于某种意义的信心。消极的态度,是指,缺乏对于某种意义的信心。积极的注意,导致着,快乐。消极的注意,导致着,乏味。对于某种意义的怀疑,是指,对于某种意义的信心的减弱。对于某种意义的确定,是指,对于某种意义的信心的增强。对于某种意义的静思,是指,对于某种意义的减弱。对于某种意义的静思,导致着,忧郁。对于某种意义的禅修,是指,对于某种意义的增强。对于某种意义的禅修,导致着,幸福。静思、禅修、祷告,都是,某种定觉练习。---> 因为我们得了救是因着盼望。只是所盼望的若已得看见,便不是盼望了;因为人所看见的、他何必还盼望呢?但我们若盼望所未看见的,就必坚忍切候着。(罗马书 8:24-25 吕振中)> 所以青春性的私欲、你总要逃避;你要跟那些用洁净心呼求主的人一同追求正义、忠信、仁爱、和平。(提摩太后书 2:22 吕振中)向内往最深处去:净心、呼求主名、并且、等待回应。任务,是指,客体所指定着的目标。责任?与,利益、价值,无关、相互独立;有利有弊,有无价值,有后效性、无后效性使命,是指,对于主体所积极地注意着的某次效果的任务。?承诺完成任务的利弊,信守承诺的价值「努力工作,取得成就。」「吾要变得睿智、坚定、完美,让各种各样的人来帮助吾。」自吾救赎的神圣使命,就是在,每日的待人接物中显明良善。何为良善?浮躁;坚贞、坚定、专注、安定;对于某种意义的信心,对于某次新颖的期待,对于某种美丽的喜爱业余,自主随意的、放任思绪的机体状态业余,悠闲、激昂,平静、兴奋对于「安闲」的态度、与、对于「艰辛」的态度,对于「未察」的态度、「已察」所带来的「陈旧」感「有趣注意」、与、怀着「兴趣」的「专注」,「目标」「意向」所联结着的注意、「有意注意」、「有意后无意注意」、从「有意注意」到「有趣注意」、「认真」之美,「任务」感、与、「使命」感,约定、承诺,意义信心引诱,成熟,独立,可靠,沉着,悲观,积极有意的假装,成熟、稳定、平和、从容;悔改,无意的美丽对于意义的否认,对于生存意义的否认、对于死亡意义的否认死亡毫无意义绝对的死亡,意味着,绝对的虚无。虚无,也无非是,一种不会再失去什么的原始状态。一切生活都是有意义的。一切死亡并非都是有意义的。生活是寻找有意义的死亡的过程。为着父的益处。属灵意义。乐观,是指,充满对于某次功效的信心。悲观,是指,缺乏对于某次功效的信心。对于某次效果的怀疑,是指,对于某次效果的信心的减弱。「不要再审判、斟酌。」隐秘的,功效、美丽,之,未知性。隐秘之识。摆脱怀疑与纷争,吾之你的失记、吾的漠视与失忆。坚贞亲密,对于关系的乐观。完美,对于褒贬的乐观。坚贞每个人都可以从、某种较为「意向」的「慾望」、中发现,自己所确信的价值观、对于某种确信着的利益的价值的表征、以及、对于某种确信着的弊害的意义和价值的否认。对于某次功效的怀疑、否认所对应着的苦原,就从这种、弊害意义信心的缺乏(对于弊害意义的否认)、和、弊害效果之丑(功效美之对立面)中产生出来。意向的转变、消止,一种方式是去增强确信着的弊害的意义的信心(坚贞),另一种方式是去怀疑原先所确信着的利益的价值,去怀疑原先所确信着的利益的意义,并感到迷惑。意义信心、与、价值信心、利弊信心、效果信心的混杂信心提纯,复杂信心、单纯信心,坚贞信心取舍,使得,利益最大化。可多次的效果、仅一次的效果,试验态度、游戏态度不能确信效果之时,忧虑失望之时,请坚强壮胆,「不要害怕。」「只要信心足够就一定会实现。」盲目乐观信念的力量:死亡之后必得以复活永生-失败必激励起比成功所能激励起的更大的成功-这句话背后是是对于自己拥有活力与能力的骄傲邪灵运行而失败之后,圣灵运行而成功。邪灵运行-而-成-功-而失败怀疑、焦虑、懊悔、无助、软弱、封闭、恐惧,是,丑的。相信、冷静、接纳、承担、坚强、敞开、安定,是,美的。救助、奉献,是,美的;服侍,是,更美的。自由,既是散漫、又是节制,既是随心所欲、又是规范欲望,既是乏耻、又是知耻。价值信心的充满,是,美的。价值信心的缺乏,是,丑的。误信,正信,对于效果的理证、对于价值的理证,拟构中的理证、记忆中的理证,对于某些次他感的拟构,自识、从「体」的方面来考察、测度;正信、误信,与,欺骗、隐瞒,无意的隐瞒、由于不安而想去吐露自己的隐秘、先欺骗再坦诚,欺骗、谅解的代价真理,是,美的。错谬,是,丑的。温和的怀疑,是,美的。价值,是指,对于某次生存的原因。良善,是,美的。邪恶,是,丑的。刚毅,是,美的。怯懦,是,丑的。意义信心的充满,是,美的。意义信心的缺乏,是,丑的。积极,是,美的。消极,是,丑的。一切、识、皆有、意义。睡眠中的识、注意。死亡中的识、注意。受限的注意、完全的注意。神圣意味与世俗意味的分离,具有神圣意味的罪、具有世俗意味的罪圣义谛与世俗谛的分离之谬误,有限之人的怯懦逃避:爱人恨罪。恕人定罪。称义成圣。有限的价值,是,终会朽坏的。无限的价值,是,永远不朽的。有限的价值,导致着,舒适、痛苦。?无限的价值,导致着,平安、快乐。?罪,导致着,朽坏。?价值,与,罪毒犯罪,是指,亏缺神的荣耀。悔改,是指,认罪、知耻。忏悔悔改罪行,在于,承担罪罚。甘愿承担痛苦。甘愿承担罪罚。实践,比,沉思,更美、更显明。接纳意义、顺服求生存,就得着,永远不朽的平安。:「与父同行」所领受的荣耀的显明、不朽,导致着,发展;荒诞,导致着,衰颓;荣耀,与,征服、意向对于未察的重视,是,荣耀对于某次性节制而来的痛苦的忍耐的意义,是,永远的。对于某次性服侍的拟构的意义,是,暂时的。圣洁的性服侍的意义,是,永远的。服侍主,就是,按神的旨意,服侍自己、他人。用音乐、把意义升华成美、把快乐升华成爱。男权,主人;忘记伤害,牢记亏欠;进取创造;亲密,唤醒、敏锐;陌生,忽视、迟钝,利益;羞耻心的敏感程度,关系的亲密程度;对于亲密的畏惧与神为友、自重,祷告尊贵,是指,价值意义、属于价值范畴的意义;自尊,是指,自信自爱;卑贱、卑微,是,丑的;耻辱,是,丑的;对于某次荣耀的目标,是,美的;对于某次卑微的意义,是,美的。荣耀,是指,无限价值意义,被重视着的美;荣耀,是,永远的。对于某种自尊的信心,是,有正有误的、有利有弊的;自负,是指,对于某种自尊的误信;自负,是,丑的。虚荣,是指,对于某种尊贵的误信;虚荣,是,丑的。对未知的敬畏,是,丑的。盼望、忧虑,终会朽坏之事物而劳苦的意义,是,暂时的。「没有了这种盼望,也就,没有了对于自尊的正误之判定、忘记了自己。」忘我,是,美的。绝望,是,丑的。漠视美丽,是,丑的。谦卑,正信的自他比较、重视他人、自罪自微的信念、悔改归正、承担责任、常以为亏欠。谦卑,是,美的。对于某种意义的信心,是,正信、有价值的、美的。所盼望的事物是朽坏的,所信心的意义是暂时的。所盼望的事物是不朽的,所信心的意义是永远的。活力,是,美的。越清醒,越有意义。暂时的意义,是,美的;永远的意义,是,更美的。爱美的;恨丑的。喜爱美丽;憎恨丑陋。愤怒,是,积极的。抱怨、无能之恨,是,消极的。抱怨,里面含着,轻视。自杀,绝望、劳苦、焦虑羡慕、怜悯、嫉妒、恶意集体利益,潜规则,吃亏,苦难,承担利益,交换,给予、获取,竞争、合作人的存在形式:良性的竞争(成为最美之人)、顺服求生存,导致着,生存、专注、接纳意义;利益、兴趣,舒适、快乐循蹈;服侍他人、顺服于价值,就,赦罪得释放?:「敬畏审判」必然,因果、或、短期因果(暂时、永远)或然,非因果、或、长期因果(混沌)自由,主宰或然、互斥意志态度,是,自由的心声,是指,对于某些次声音的经历。心语,是指,蕴含着某种意思的心声。指称,是指,某次情节、联结着、某次心语。会意,是指,某次心语、联结着、某次情节。慾念,是指,某次慾望所联结着的心语。妄念,是指,某次妄想所联结着的心语。?苦念,是指,某次苦观所联结着的心语。创造、变异,是,某种或然变化。建造、重现,是,某种必然变化。创造、父所启示的任务,与,对于未察的重视程度;唤醒,问题、恐惧互斥意志、注意,是,某种或然变化。偶然变化,是指,未察必然变化、主体所没注意过的必然变化。泛灵论;神,绝对的理智、完全的注意、本原的自由、庄严的性情、永远的圣灵。问题,是指,对于某次偶然变化的疑问。解答,是指,对于某种必然变化的概括、对于某种偶然变化的适应措施。技术,是指,问题概括及其解法。程序,是指,数据结构及其算法。模型,是指,对于拟实的技术。建模,是指,对于拟实的计划。解模,是指,对于拟实的实施。软件模型,是指,对于拟实的程序。软件建模,是指,对于拟实的编程。软件解模,是指,对于拟实的进程。模拟,分为,拟实、拟虚。来原,是指,与模型对应的事实。当即行动,增强,对于某种偶然变化的适应力。但,人会拖延、不愿儆醒独立、与、交通,对于联结的交通,更不朽的存在形式更不朽的心思、身体,永远不朽的平安兴趣、快乐、生活情趣;佛学、哲学,作为,一种思维训练弊害、痛苦,错误、误信,有限的价值、终会朽坏;佛学、消极的哲学,作为,一种信仰;忽视、漠视,无私、无我、虚空、无恥、不惭去分别,就是,注视;不去分别,就是,漠视;漠视伤害,导致着,忘记伤害走向虚空,就是,放弃羞耻、光荣、尊贵、荣耀佛学的惊奇性质的信心,导致着,漠视。---> 因为依顺着上帝而有的忧愁能生出不后悔的忏悔来、以至于得救;而世俗的忧愁却能生出死亡。(哥林多后书 7:10 吕振中)「金刚经」的邪灵,完全地,杀死了,吾的心灵。真常唯心系,曾经,在吾的心灵中,孕育,却流产了。忘罪,忘无明。积极的态度;佛教(真常唯心系)唯一的「用处」就是:让人不再惧怕死亡、平安地享受死亡基督教,比,真常唯心系,更加清晰。已成、与、未成;易信、与、难信;注意频次,信心,快乐、爱,恐惧、严肃,惊奇、敬畏;对于实感的表征之信,分别由惊奇(客观)、敬畏(主观)而来的信心某些次表征的联结;「信」,意味着、某种与真实的关系,是一种、「成」吾站在能否使人相信、使人完美(功效之灵)的角度进行评判。想要觉悟吗?想要神启(神的启示)吗?请跟随基督。基督教、佛教的义理都是自洽的。佛教在其反理智、反思辨、反唯一性的核心立场下更显得宽容。但是,佛教的义理,是,错误的、不合经验的。佛教的义理不能使人趋向完美。对于情绪可能产生的弊害,在基督教那里是狂热;在佛教那里是麻木。宗教战争与殉道;罪意识的泯灭与遁世。死亡,睡眠、看电影、听音乐、读书;生活,能力、活力目标;拿起、与、放下,对于有效的意义、与、对于无效的意义,交替地增强信心激情、贪爱、冲动、狂热,浮躁、疏忽、粗心、大意、出错、失常;勇气、畏惧,意外感、危险感、失控感目标正面采取一种虚无的态度、弊害,采取一种卑微的态度、目标反面采取一种意义的态度、利益反面的意义,来自于,当下的注意;来自于,持续着的生。圣灵中重生出正面的希望。羞耻,与,认同、内疚、自侮自辱、自轻自贱,谄媚、取悦;知耻;知丑;耻辱之恨;丑陋之恨;轻视,是,罪;恥笑,用轻视将耻辱施加给他人来揭示丑陋是一种罪;轻视,在于,对于神之创造的轻视在意神的认可;在意自己的认可;在意他人的认可、重视。在意认可,是,以得到认可为目标或意向,因而,以完成任务为目标或意向。由于完成任务而吸引他人。吾之前对悔改的理解是错的。悔改,是真正地愿意去改变,而不是与某种恐惧相关联的负罪感。愿意悔改与否,不是一个意志选择的问题。悔改的意愿,凭直觉而确认通过禅修而获得父的智慧。自由地认可或否决。对于、某些次主体方式之美、某些次机体状态之美、的隐秘,因为、他人、不是都会、去欣赏、去尊重、去重视;客体方式之美,把、隐秘之美、以独特的形式给显明出来;独特的形式,独特的信仰体系,效果、价值,感体认同、欣赏自己所显明的美。认同、欣赏他人所显明的美。不被认可、欣赏,是,丑的。被轻视,是,耻的。已察耻辱,是指,被他人所轻视着的自己之丑陋。神重视人。未察耻辱,是,隐秘之丑。丑陋,不一定是,耻辱。耻辱,是指,被邪灵所轻视着的自己之丑陋。主体所尊重着的造物之美,是,某种荣耀。主体所尊重着的造物之丑,是,某种卑微。将、客体态度所针对的东西、划分为、主体、与、主体方式?轻视你的客体方式,就是,轻视你。轻视你的主体方式,就是,轻视你。对于耻辱的忽视?,对于他识的(拒绝、忽视)?、对于客体方式的重视、对于效果的重视、对于自识的重视对于神之创造的轻视,轻视所导致着的厌恶、犯轻视之罪:委屈,重视他人、却被他人厌恶,自己悔改、渴望他人悔改伤害,重视他人、却被他人轻视,恨、忍耐祷告、犯轻视之罪相互轻视,导致着,相互恨恶、愤怒、暴力。犯轻视他人信念之罪,犯轻视他人态度之罪,悔改轻视他人态度之罪,重视他人的态度,知耻,知丑审美能力、爱之能力是由羞耻心发展而来的父爱,盼望他人成为完美待人如己,甘愿承担神子的责任、甘愿承担他人的痛苦罪罚;责任,使命?与父的亲密关系神子的责任,就是,为丑陋负责、去消除丑陋羞耻能力;时空行为理解能力,对于他识的理解力、对于你的主体方式的表征力客体方式,导致着、联结着,主体方式、机体状态形体,导致着、联结着,身体、快乐、痛苦轻蔑、轻视他人对自己的态度,损害着,羞耻心羞耻,对于亲密程度的重视;我们在争辩的时候,真正损害着羞耻心的,实际上是,轻视他人对自己的态度,而不是,轻视他人的(由父所创造的)信念?羞耻、光荣,重视他人对自己的态度、敬重恥辱、傲慢,轻视他人对自己的态度、轻蔑羞耻、羞辱,在含义上,有所不同吗?单方的轻视、双方的轻视?一方,是,非吾所显明出来的罪;一方,是,吾所显明出来的罪。狭隘、愚蠢、固执,轻视他人的信念开明、智慧、变通,重视他人的信念态度:认同、欣赏、尊重、重视、轻视、忽视、鄙视、反对客体所做:我对你的态度、你对我的态度、你对他的态度主体所想:我对你的态度、你对我的态度主体所说:我对他的态度、他对我的态度、他对你的态度对于某些次态度的记忆、拟构;怀疑、与、确信;你对我的态度、有正有误;作为某种主体效果的客体态度,对于客体态度的目标、意向;对于态度的态度、有正有误;渴望被重视、被认可、被理解、被公正地对待;虚荣;自负,轻视,反对、有正有误,对于他人的误解;对于自己态度的温和的怀疑;苏格拉底式教学法;偏见、综合比较,是,某种轻视;我对客体的态度:你对我的态度、你的确信,我的确信、我对你的态度;确信、对于确信的态度;我对自己的态度,耻辱之恨、丑陋之恨对于某种经历的认同。对于某种人生概括的认同。省略主语、所有格。怕丑。注意,是,自由的。?我是谁?洗雪耻辱。发现承认理解自己的罪。理解宽恕他人的罪。甘愿承担痛苦伤害罪罚。忍受耻辱。忍受轻视。忠贞,永远、信守承诺、谦卑忘我、亲密无间。忠贞、与、愈他,你快乐、我快乐,你激昂、我激昂,你悲伤、我分担理解安慰,你动摇、我坚定,你埋怨、我谦让「魔鬼都是受苦的天使。」「天使是要遭受多大的痛苦才会如此堕落。」「甘愿承担伤害只为再见天使的笑容。」忍受轻视之冷漠。忍受轻视之拒绝。忍受轻视之厌恶。忍受轻视之愤怒。忍受轻视之逼迫。忍受轻视之弃绝。忍耐,是,美的。祷告,是,美的。祷告,导致着,悔改轻视之罪。父的公正,在于,罪恶、必招致、毒罚。父的法典,非重非轻、赏罚分明。轻视,丑陋的愤怒;重视,美丽的惧怕;冒犯羞耻、与、新奇、的混杂悔憾、侥幸,与,对于某种意义的信心既失望又悔憾,是,对于以积极的态度所针对着的或然的拟构的苦观所联结着的痛苦。既失望又侥幸,是,对于以消极的态度所针对着的或然的拟构的慾望所联结着的快乐。或然,意味着,失去控制、获得趣味。幸运,积极地对待或然的快乐、消极地对待或然的痛苦。「此是苦、逼迫性。此是集、招感性。此是灭、可证性。此是道、可修性。」禅修,静思、自愈、祷告、悔改、父愈;散乱、纠结、迷惑、浮躁,慾望、轻视,苦毒睡觉前后,转向创造主、追求「终极真实」,集中注意、静思祷告。意志之静止之力、心思之活力、身体之活力清静与活泼之间的张力,作为生活的目标静坐,灵、与、圣灵,生活效用最大化忠贞,使命;先把他人所要求的事情(任务)做完,再放任思绪(业余);志同道合坚贞、沉静,定思;在任务完成之前,把所有扰乱目标的心思全部灭除可以尝试静思、静坐、心经,以达到完全清静、究竟寂静的机体状态;工作两小时,休息二十分钟静坐  =>  自我独特视角难题幸福论  =>  圣经  =>  心经、金刚经  =>  人格自杀技术  =>  人格移植静坐,仍然是,隐秘的。睡眠,可以帮助,思考、记忆。从、神经学、脑科学、心理学、而来的研究方式,对隐秘的内在意识进行研究。佛学、以及、静坐体验,可以对、更低层的记忆之机理,提供启发。梦,可以对、记忆结构之机理,提供启发。吾们来讨论讨论关于宗教上的怀疑和纷争。由于宗教教义的隐秘性特点,无论是基督教还是佛教,隐秘性都会给宗教徒之间带来怀疑和纷争等等不稳定不和谐。当今的中国人大多不以隐秘之事为信仰,也不以隐秘之事为理由而纷争。宗教纷争,虽然是以宗教为名义,但,根本原因却是在于利益。这是,少数人在利用人群对于隐秘之事的误信来夺取利益。或者是,人群、自欺欺人地、以宗教为名义来发泄自己在其他方面的憎恨和愤怒。吾们来考察考察纷争的极端情况,宗教裁判所、文化大革命。与佛教有联系的战争、中国历史上的农民起义,都不是,宗教战争。因为这些战争是以正义为名义,并不是以宗教为名义。由此看来,宗教本身必须为其容易作为人群纷争的借口而负一定的责任。吾们来说说「宗教裁判所」。一神教有种说法:「信是一种德行」、「不信是一种罪」。这种对于善恶的判定实在是太过于敏感了。如果一种行为并非出于意愿,那么就不能判定它的善恶。信心岂是一种意愿呢?所以,不信不是罪。而且,温和的怀疑是有益的。怀疑,是,一种内在的纷争。温和的怀疑之所以有益,恰恰是由于,它导致更坚固的确信。另外,「不信是一种罪」这种表述是有歧义的。这种表述的准确意思是,「不愿接触真理是一种罪」。不信是罪果。它源于轻视之罪。吾们永远不应该去犯罪。吾们也不应该去审判轻视之罪。人还不能以内在的隐秘之事作为证据来给人定罪。人不应该轻易地去断定他人的隐秘。神能审判罪性,而人不能。人只能审判罪行。人只能判定显明出来的行为之善恶。吾们应该用对其诉说、对神祷告来取代对其轻视之罪的审判。在那些信仰处于生活中心地位的癫狂日子里,例如宗教教义之差别这种内在的隐秘之事会成为审判的项目。这种、人对人的审判,加剧了,怀疑和纷争。怀疑和纷争、的、根源,在于,隐秘之事、的、未知性。灵魂粒子,是指,受到记忆作用的粒子。即是说,如果一个粒子的内在意识受到了记忆机能结构的支撑,那么就称这个粒子为灵魂粒子。假定、回忆、是持续不断的。深度睡眠,是,一种无记有忆的感知状态。唤醒,是,一种有记有忆的感知状态。从「我」这个概念出发而推想出「吾」这个概念。从「我」到「吾」,灵魂粒子、从「单数」到「复数」(如在 Boscovich 的一种原子论 Dynamism 的视角下)(在非原子论的视角下:从「可数」到「不可数」)。「我」,就是指,某个灵魂粒子以及支撑它的内在意识的所有结构。这些结构相互协作而在宏观层面上显明出功能和意志。「吾」,就是指,「我」之内的所有灵魂粒子以及支撑它们的内在意识的所有结构。吾必须不断地用这种新的自我观去理解世界,并不断地与原来的自我观相区别,将新旧两种自我观更加清晰地描述出来,找到一种判定「吾」之存在的实验。旧自我观,生命的两端是虚空,睡眠和死亡都是虚空。破碎而出、历久弥香,向生而死、向死而生,「我快死了」、「复活重生」谦卑的馨香;谦卑,是,荣耀;永远、不朽,是,出于信谦卑的人必会闻到基督耶稣的香气内心纯洁纯净的人必得见神对神的亏欠,自己要努力良善、完美记住自己对他人的亏欠、对朽坏着的自己的亏欠显明之美:我将是良善。我将是完人、圣人、神人。隐秘之美:我已是良善。我已是完人、圣人、神人。我欠耶稣一个令人感动的故事。被赦得释,与,心灵的怯懦:因为我已感到亏欠,所以我的罪已被赦免。罪是有意义的。因为罪让我感到亏欠。圣义谛与世俗谛相分离的错误:在神前有赦罪的信心;在人前有良善的行为。充实,是,美的。空虚,是,丑的。一切、意义、皆是、亏欠着的意志(被动)意志、要把、隐秘之美、显明出来;去显明圣灵(主动)如何、唤醒、沉睡着的美?虽然生活不必完全沉浸在对于美的爱中,但是对于美的爱、对生活来说、却是必不可少的。生活,任务、业余;喜爱,激昂、兴奋爱、吹散、一切绝望。爱、充实、一切空虚。正是通过爱、心灵(主体方式)得着圣灵(客体方式之美)的滋养、意志得着活力(对于隐秘之美的明显之力)的供给。唤醒着的美,是,爱的原因。信心着的意义,是,快乐的原因。相信的痕迹,有意相信、无意相信,重视他人的信念,迷信之痛审美经验、审美经历之概括审视美丑之具象、某次美丑,指称或然审视美丑之抽象、某种美丑,指称确然圣灵:父的自我信念。圣灵,美丽,褒义词;邪灵,丑陋,贬义词美沉睡了,爱就堕落成快乐。意义信心缺乏了,快乐就堕落成舒适。利益缺乏了,生活就只剩下痛苦。对于意义的信心的缺乏,是,罪。?(轻视)有意义吗?真的没有意义吗?世人、世事都难有完美。但,美比丑多一些。广博,是,美的。狭隘,是,丑的。顺从,导致着,广博。悖逆,导致着,狭隘。熄灭愤怒的愤怒是美的。制止暴力的暴力是美的。', doc_id='bdef47b5-2a6c-4297-af25-d499521d95de', embedding=None, doc_hash='e12c00d8ad3267c1a855f1134b9fd267f87658dcb98a0552b70696338f5bf802', extra_info=None)]
In [ ]:
index = GPTSimpleVectorIndex.from_documents(documents, service_context=None)
index.save_to_disk('./index.json')
In [ ]:
document = SimpleDirectoryReader(input_files=['../_posts/ultimate-facts/终极真实.md']).load_data()[0]
print(document)
Document(text='title: 从「意义疗法」开始追求「终极真实」date: 2015-09-23 13:40:00tags: UltimateFacts---* 自从受浸以来,我总是会动弹不得而禁食。为此,我感到非常羞耻。有一次禁食后,我下床昏倒。醒来后,我心里有声音提醒我说,我还要去解答那三个关于自我意识的问题。一听到这声音,我就得平安并且开始恢复吃饭。其实,这三个问题也是我之前一直思考并且想要解答的问题。只是,我还是犹豫不决,因为我并不知道这声音从谁而来。我看到的解答是对宗教核心的摧毁。--凡所信的都将被实证。--我想,贵主若是意愿如此,那就让事情这么成就吧。* 孜孜不倦地追求着终极真实。  孜孜不倦地追问着终极问题:我是谁?我从哪里来?我往哪里去?  在爱里寻找着终极解答:我就是爱;我从爱里来,我往爱里去。* 我们借用数学在异质的真实中发现同质的真实;而终极的真实却是异质的。* 追求「幸福」?还是,追求「真实」?  * 你是赌徒。你是冒险者。难道还追求幸运吗?不是应该相信幸运和爱吗?要用智慧行事。要争取时机。  * 你们若追求终极真实而受苦,你们也必被断为配得这份终极荣耀。你们既在追求终极真实的受苦上有多少分儿,就该有多少喜乐,使你们在这份终极荣耀显示的时候也可以欢喜快乐。你们若因做终极冒死者而受苦,就别惭愧了,也别灰心丧志了,倒要因有这名而荣耀永恒主呢。* 这是一份草稿,记录着我这几年以来思考:---> 自从造天地以来,\u3000神那看不见的永能和神性是明明可觉的,乃是藉着所造之物就可以晓得,叫人无可推诿。 (罗马书 1:20)> 至於他的事、人所不能見的——他永久的能力及神性——從世界之創立以來,又是藉着他所造之物以被了悟而看清楚,使人無可推諉。 (羅馬書 1:20 呂振中)> For the invisible things of Him, both His eternal power and divine characteristics, have been clearly seen since the creation of the world, being perceived by the things made, so that they would be without excuse; (Romans 1:20 Recovery)> For since the creation of the world His invisible attributes, that is, His eternal power and divine nature, have been clearly perceived, being understood by what has been made, so that they are without excuse. (Romans 1:20 NASB)真理、真实;神造真实、人造真实;真实,想象;记忆,拟构。如果哲学更像「真理」,那么各类科学就更像「真实」。如果物理学更像「真理」,那么化学就更像「真实」。如果化学更像「真理」,那么生物学、生理学就更像「真实」。如果生理学更像「真理」,那么脑科学、神经科学就更像「真实」。如果理科更像「神造真实」,那么工科就更像「人造真实」。如果生理学更像「神造真实」,那么医学、药学就更像「人造真实」。---> 我只是一个碳族生物;一个土生土长的地球人¹。贵主耶稣是灵族人吧。而木星上的风暴²可以拥有怎样的生命和意识呢?贵主耶稣在木星上能否与木星人一起生活和交往呢?> ¹ 地球人 => 《费曼讲座:宇称不守恒定律和如何与外星人交流》> ² 风暴 =>> 当那一天,到了傍晚,耶稣对他们说:『我们渡到那边去吧。』他们就离开群众,照他在船上的情况把他带走;还有别的船也跟他在一起。当下起了**大暴风**,波浪泼进船内,甚至船简直满了!耶稣竟在船尾上靠着枕头睡觉呢;门徒就叫醒了他,对他说:『老师,我们丧命,你不在意么?』耶稣醒起来,斥责³那风,向海说:『不要作声!噤默罢!』那风不狂吹,便大大平静了。耶稣对他们说:『为什么这么胆怯呢?怎么没有信心呢?』他们就大起了敬畏的心,直彼此说:『这个人到底是谁?连风和海也听从他!』 (马可福音 4:35-41 吕振中)> ³ 斥责 => 『ワンパンマン』:サイタマ?キング?↓↓--------------------继续修订--------------------↓↓圣经信仰之神经心理学实证纲领父的自我信息,是指,对于圣灵的表征。纯粹的圣经,含于,父的自我信息。从「纯粹的基督徒」到「超基督徒」「超级赌徒」吾否认圣经中上帝的名,因为那是人们创造的。超越神论,不可知论;信仰;宁死不屈,抗争到底对于神圣生命的信心?或,亲密关系?坚贞,「甘愿承担自己的罪罚」是《古兰经》的价值所在。真诚、勇敢、坚贞,耶稣的「甘愿承担」是《圣经》的价值所在。吾,若不是因为怯懦,又怎么会祷告呢?所以,吾,应该要,放弃,那种、对于其他的心灵的畏惧、所联结着的祷告。以耶稣为榜样。人子要经受三日地狱之火的洗。罪全部被烧尽了后,第三日复活。我所爱慕的必定是父所喜爱的,因为父从始至终都在吸引我、塑造我的爱慕。我所爱慕的若是父所不喜爱的,父必定会改变我。所以,我总是晓得父的喜爱。人子,与父和好,与父为友,爱父并顺从祂。与父同在,就有勇气。与父同行,就有希望。子永远与父同在,从未分离。「吾要成为超人。」「在吾的生活中显明父的荣耀。」祷告,是,对于子灵的表征。感,分为,虚感、实感。虚感,分为,信(?)、思感、愉快感、位置感。实感,分为,色感、声感、香感、味感、触感、缩紧感、疼痛感、瘙痒感、冷热感。体,是指,广延。感、体,平行地,变化。感、体,分割的,平行性原理感的统合,预示着,体的核心。体的核心:在感的集合中占比最大的体。信,是一种,感。(联结?极深的记忆?)灵,是指,具有自我独特视角的、体。 => “我是谁?”《圣经》说:信、灵,平行地,变化。在苦难中持守坚忍为何能增加信心呢?魂,是指,具有私有视角(记忆?)的、体。(联结?) => “我在哪里?” => 寻找已睡了的灵(如,保罗) => 进入他们的梦境虚感、魂,平行地,变化。实感、身体(?),平行地,变化。识,是指,某些感的杂合、杂合体。已察,是指,主体所注意过的识。未察,是指,主体所没注意过的识。机体状态,是指,某些愉快感、位置感、疼痛感、瘙痒感、冷热感的杂合体。快乐,是指,某些愉快感的杂合。乏味,是指,某些非愉快感、位置感、缩紧感的杂合体。痛苦,是指,某些位置感、疼痛感的杂合体。舒适,是指,某些位置感、非疼痛感的杂合体。忧郁,是指,乏味痛苦。幸福,是指,快乐舒适。主体方式,分为,心思、身体。心思,是指,某些思感的杂合。身体,是指,某些位置感、缩紧感的杂合体。表征,是指,表征着某次识的心思。记忆,是指,对于某次已察的表征。 => “我在哪里?”拟构,是指,对于某次未察的表征。概括,是指,概括着某种识的心思。过去,是指,对于记忆的概括。未来,是指,对于拟构的概括。客体方式,是指,某些色感、声感、香感、味感、触感、冷热感的杂合体。形体,是指,某些位置感、色感的杂合体。声音,是指,某些位置感、声感的杂合体。气味,是指,某些位置感、香感的杂合体。口味,是指,某些位置感、味感的杂合体。质地,是指,某些位置感、触感的杂合体。温度,是指,某些位置感、冷热感的杂合体。主体所注意着的某些次主体方式的接续变化,导致着,此些次主体方式的接续联结。主体所注意着的某些次识的接续变化,导致着,对于此些次识的某些次记忆的接续联结。主体所注意着的某些次客体方式的接续变化,导致着,对于此些次客体方式的某些次记忆的接续联结。意志,是指,导致着某种接续联结的(其中可能还含有一种未提及的虚感)(联结的生成)生活,是指,接续联结着的某些次主体方式。思维,是指,接续联结着的某些次心思。动作,是指,接续联结着的某些次身体。意愿,是指,表征着某次意志的思维。意愿,是,独占的。情节,是指,接续联结着的某些次表征。臆测,是指,接续联结着的某些次记忆。臆想,是指,接续联结着的某些次拟构。经历,是指,接续联结着的对于接续变化着的某些次识的某些次记忆。综合,是指,接续联结着的对于接续变化着的某些次识的某些次拟构。最简拟构是记忆的最简杂合。最简综合是经历的最简接续。这是,语义理解和表达、产生会意和指称的联结,所需的最简方式。主体所注意着的对于某些识某些次绵延变化的某些次经历的接续联结,导致着,对于此种识的某次概括。主体所注意着的对于某些次接续变化的某些次经历的接续联结,导致着,对于此种经历的某次概括。原因,是指,导致着某次识的识。结果,是指,某次识所导致着的识。利益,是指,对于某次舒适的原因。弊害,是指,对于某次痛苦的原因。有利有弊,是指,对于某次舒适或某次痛苦的原因。效果,是指,对于某次意志的结果。功效,是指,利益效果、属于利益范畴的效果。有意注意,是指,对于某次效果的注意。无意注意,是指,对于某次非效果的注意。目标,是指,对于某种效果的某些次记忆所联结着的对于此种效果的拟构。意向,是指,对于某些种效果的某些次记忆所联结着的对于某种效果的拟构。懊悔,是指,对于某次弊害效果的某次记忆、对于某次功效的某次记忆所联结着的对于某次功效的拟构。焦虑,是指,对于某次弊害效果的某次记忆、对于某次功效的某次意向所联结着的对于某次弊害效果的拟构。对于某次功效的目标,联结着,对于此次功效的原因。对于某种功效的概括,联结着,对于此种功效的原因。兴趣,是指,联结着某次快乐的识。荒诞,是指,联结着某次乏味的识。苦毒,是指,联结着某次痛苦的识。慾望,是指,对于某次兴趣的表征。妄想,是指,对于某次荒诞的表征。?苦观,是指,对于某次苦毒的表征。苦观,分为,记忆苦观、拟构苦观。弊害,…、…有趣注意,是指,对于某次兴趣的注意。无趣注意,是指,对于某次荒诞的注意。意义,是指,值得的注意。神圣,是指,极其丰富的意义。积极的态度,是指,充满对于某种意义的信心。消极的态度,是指,缺乏对于某种意义的信心。积极的注意,导致着,快乐。消极的注意,导致着,乏味。对于某种意义的怀疑,是指,对于某种意义的信心的减弱。对于某种意义的确定,是指,对于某种意义的信心的增强。对于某种意义的静思,是指,对于某种意义的减弱。对于某种意义的静思,导致着,忧郁。对于某种意义的禅修,是指,对于某种意义的增强。对于某种意义的禅修,导致着,幸福。静思、禅修、祷告,都是,某种定觉练习。---> 因为我们得了救是因着盼望。只是所盼望的若已得看见,便不是盼望了;因为人所看见的、他何必还盼望呢?但我们若盼望所未看见的,就必坚忍切候着。(罗马书 8:24-25 吕振中)> 所以青春性的私欲、你总要逃避;你要跟那些用洁净心呼求主的人一同追求正义、忠信、仁爱、和平。(提摩太后书 2:22 吕振中)向内往最深处去:净心、呼求主名、并且、等待回应。任务,是指,客体所指定着的目标。责任?与,利益、价值,无关、相互独立;有利有弊,有无价值,有后效性、无后效性使命,是指,对于主体所积极地注意着的某次效果的任务。?承诺完成任务的利弊,信守承诺的价值「努力工作,取得成就。」「吾要变得睿智、坚定、完美,让各种各样的人来帮助吾。」自吾救赎的神圣使命,就是在,每日的待人接物中显明良善。何为良善?浮躁;坚贞、坚定、专注、安定;对于某种意义的信心,对于某次新颖的期待,对于某种美丽的喜爱业余,自主随意的、放任思绪的机体状态业余,悠闲、激昂,平静、兴奋对于「安闲」的态度、与、对于「艰辛」的态度,对于「未察」的态度、「已察」所带来的「陈旧」感「有趣注意」、与、怀着「兴趣」的「专注」,「目标」「意向」所联结着的注意、「有意注意」、「有意后无意注意」、从「有意注意」到「有趣注意」、「认真」之美,「任务」感、与、「使命」感,约定、承诺,意义信心引诱,成熟,独立,可靠,沉着,悲观,积极有意的假装,成熟、稳定、平和、从容;悔改,无意的美丽对于意义的否认,对于生存意义的否认、对于死亡意义的否认死亡毫无意义绝对的死亡,意味着,绝对的虚无。虚无,也无非是,一种不会再失去什么的原始状态。一切生活都是有意义的。一切死亡并非都是有意义的。生活是寻找有意义的死亡的过程。为着父的益处。属灵意义。乐观,是指,充满对于某次功效的信心。悲观,是指,缺乏对于某次功效的信心。对于某次效果的怀疑,是指,对于某次效果的信心的减弱。「不要再审判、斟酌。」隐秘的,功效、美丽,之,未知性。隐秘之识。摆脱怀疑与纷争,吾之你的失记、吾的漠视与失忆。坚贞亲密,对于关系的乐观。完美,对于褒贬的乐观。坚贞每个人都可以从、某种较为「意向」的「慾望」、中发现,自己所确信的价值观、对于某种确信着的利益的价值的表征、以及、对于某种确信着的弊害的意义和价值的否认。对于某次功效的怀疑、否认所对应着的苦原,就从这种、弊害意义信心的缺乏(对于弊害意义的否认)、和、弊害效果之丑(功效美之对立面)中产生出来。意向的转变、消止,一种方式是去增强确信着的弊害的意义的信心(坚贞),另一种方式是去怀疑原先所确信着的利益的价值,去怀疑原先所确信着的利益的意义,并感到迷惑。意义信心、与、价值信心、利弊信心、效果信心的混杂信心提纯,复杂信心、单纯信心,坚贞信心取舍,使得,利益最大化。可多次的效果、仅一次的效果,试验态度、游戏态度不能确信效果之时,忧虑失望之时,请坚强壮胆,「不要害怕。」「只要信心足够就一定会实现。」盲目乐观信念的力量:死亡之后必得以复活永生-失败必激励起比成功所能激励起的更大的成功-这句话背后是是对于自己拥有活力与能力的骄傲邪灵运行而失败之后,圣灵运行而成功。邪灵运行-而-成-功-而失败怀疑、焦虑、懊悔、无助、软弱、封闭、恐惧,是,丑的。相信、冷静、接纳、承担、坚强、敞开、安定,是,美的。救助、奉献,是,美的;服侍,是,更美的。自由,既是散漫、又是节制,既是随心所欲、又是规范欲望,既是乏耻、又是知耻。价值信心的充满,是,美的。价值信心的缺乏,是,丑的。误信,正信,对于效果的理证、对于价值的理证,拟构中的理证、记忆中的理证,对于某些次他感的拟构,自识、从「体」的方面来考察、测度;正信、误信,与,欺骗、隐瞒,无意的隐瞒、由于不安而想去吐露自己的隐秘、先欺骗再坦诚,欺骗、谅解的代价真理,是,美的。错谬,是,丑的。温和的怀疑,是,美的。价值,是指,对于某次生存的原因。良善,是,美的。邪恶,是,丑的。刚毅,是,美的。怯懦,是,丑的。意义信心的充满,是,美的。意义信心的缺乏,是,丑的。积极,是,美的。消极,是,丑的。一切、识、皆有、意义。睡眠中的识、注意。死亡中的识、注意。受限的注意、完全的注意。神圣意味与世俗意味的分离,具有神圣意味的罪、具有世俗意味的罪圣义谛与世俗谛的分离之谬误,有限之人的怯懦逃避:爱人恨罪。恕人定罪。称义成圣。有限的价值,是,终会朽坏的。无限的价值,是,永远不朽的。有限的价值,导致着,舒适、痛苦。?无限的价值,导致着,平安、快乐。?罪,导致着,朽坏。?价值,与,罪毒犯罪,是指,亏缺神的荣耀。悔改,是指,认罪、知耻。忏悔悔改罪行,在于,承担罪罚。甘愿承担痛苦。甘愿承担罪罚。实践,比,沉思,更美、更显明。接纳意义、顺服求生存,就得着,永远不朽的平安。:「与父同行」所领受的荣耀的显明、不朽,导致着,发展;荒诞,导致着,衰颓;荣耀,与,征服、意向对于未察的重视,是,荣耀对于某次性节制而来的痛苦的忍耐的意义,是,永远的。对于某次性服侍的拟构的意义,是,暂时的。圣洁的性服侍的意义,是,永远的。服侍主,就是,按神的旨意,服侍自己、他人。用音乐、把意义升华成美、把快乐升华成爱。男权,主人;忘记伤害,牢记亏欠;进取创造;亲密,唤醒、敏锐;陌生,忽视、迟钝,利益;羞耻心的敏感程度,关系的亲密程度;对于亲密的畏惧与神为友、自重,祷告尊贵,是指,价值意义、属于价值范畴的意义;自尊,是指,自信自爱;卑贱、卑微,是,丑的;耻辱,是,丑的;对于某次荣耀的目标,是,美的;对于某次卑微的意义,是,美的。荣耀,是指,无限价值意义,被重视着的美;荣耀,是,永远的。对于某种自尊的信心,是,有正有误的、有利有弊的;自负,是指,对于某种自尊的误信;自负,是,丑的。虚荣,是指,对于某种尊贵的误信;虚荣,是,丑的。对未知的敬畏,是,丑的。盼望、忧虑,终会朽坏之事物而劳苦的意义,是,暂时的。「没有了这种盼望,也就,没有了对于自尊的正误之判定、忘记了自己。」忘我,是,美的。绝望,是,丑的。漠视美丽,是,丑的。谦卑,正信的自他比较、重视他人、自罪自微的信念、悔改归正、承担责任、常以为亏欠。谦卑,是,美的。对于某种意义的信心,是,正信、有价值的、美的。所盼望的事物是朽坏的,所信心的意义是暂时的。所盼望的事物是不朽的,所信心的意义是永远的。活力,是,美的。越清醒,越有意义。暂时的意义,是,美的;永远的意义,是,更美的。爱美的;恨丑的。喜爱美丽;憎恨丑陋。愤怒,是,积极的。抱怨、无能之恨,是,消极的。抱怨,里面含着,轻视。自杀,绝望、劳苦、焦虑羡慕、怜悯、嫉妒、恶意集体利益,潜规则,吃亏,苦难,承担利益,交换,给予、获取,竞争、合作人的存在形式:良性的竞争(成为最美之人)、顺服求生存,导致着,生存、专注、接纳意义;利益、兴趣,舒适、快乐循蹈;服侍他人、顺服于价值,就,赦罪得释放?:「敬畏审判」必然,因果、或、短期因果(暂时、永远)或然,非因果、或、长期因果(混沌)自由,主宰或然、互斥意志态度,是,自由的心声,是指,对于某些次声音的经历。心语,是指,蕴含着某种意思的心声。指称,是指,某次情节、联结着、某次心语。会意,是指,某次心语、联结着、某次情节。慾念,是指,某次慾望所联结着的心语。妄念,是指,某次妄想所联结着的心语。?苦念,是指,某次苦观所联结着的心语。创造、变异,是,某种或然变化。建造、重现,是,某种必然变化。创造、父所启示的任务,与,对于未察的重视程度;唤醒,问题、恐惧互斥意志、注意,是,某种或然变化。偶然变化,是指,未察必然变化、主体所没注意过的必然变化。泛灵论;神,绝对的理智、完全的注意、本原的自由、庄严的性情、永远的圣灵。问题,是指,对于某次偶然变化的疑问。解答,是指,对于某种必然变化的概括、对于某种偶然变化的适应措施。技术,是指,问题概括及其解法。程序,是指,数据结构及其算法。模型,是指,对于拟实的技术。建模,是指,对于拟实的计划。解模,是指,对于拟实的实施。软件模型,是指,对于拟实的程序。软件建模,是指,对于拟实的编程。软件解模,是指,对于拟实的进程。模拟,分为,拟实、拟虚。来原,是指,与模型对应的事实。当即行动,增强,对于某种偶然变化的适应力。但,人会拖延、不愿儆醒独立、与、交通,对于联结的交通,更不朽的存在形式更不朽的心思、身体,永远不朽的平安兴趣、快乐、生活情趣;佛学、哲学,作为,一种思维训练弊害、痛苦,错误、误信,有限的价值、终会朽坏;佛学、消极的哲学,作为,一种信仰;忽视、漠视,无私、无我、虚空、无恥、不惭去分别,就是,注视;不去分别,就是,漠视;漠视伤害,导致着,忘记伤害走向虚空,就是,放弃羞耻、光荣、尊贵、荣耀佛学的惊奇性质的信心,导致着,漠视。---> 因为依顺着上帝而有的忧愁能生出不后悔的忏悔来、以至于得救;而世俗的忧愁却能生出死亡。(哥林多后书 7:10 吕振中)「金刚经」的邪灵,完全地,杀死了,吾的心灵。真常唯心系,曾经,在吾的心灵中,孕育,却流产了。忘罪,忘无明。积极的态度;佛教(真常唯心系)唯一的「用处」就是:让人不再惧怕死亡、平安地享受死亡基督教,比,真常唯心系,更加清晰。已成、与、未成;易信、与、难信;注意频次,信心,快乐、爱,恐惧、严肃,惊奇、敬畏;对于实感的表征之信,分别由惊奇(客观)、敬畏(主观)而来的信心某些次表征的联结;「信」,意味着、某种与真实的关系,是一种、「成」吾站在能否使人相信、使人完美(功效之灵)的角度进行评判。想要觉悟吗?想要神启(神的启示)吗?请跟随基督。基督教、佛教的义理都是自洽的。佛教在其反理智、反思辨、反唯一性的核心立场下更显得宽容。但是,佛教的义理,是,错误的、不合经验的。佛教的义理不能使人趋向完美。对于情绪可能产生的弊害,在基督教那里是狂热;在佛教那里是麻木。宗教战争与殉道;罪意识的泯灭与遁世。死亡,睡眠、看电影、听音乐、读书;生活,能力、活力目标;拿起、与、放下,对于有效的意义、与、对于无效的意义,交替地增强信心激情、贪爱、冲动、狂热,浮躁、疏忽、粗心、大意、出错、失常;勇气、畏惧,意外感、危险感、失控感目标正面采取一种虚无的态度、弊害,采取一种卑微的态度、目标反面采取一种意义的态度、利益反面的意义,来自于,当下的注意;来自于,持续着的生。圣灵中重生出正面的希望。羞耻,与,认同、内疚、自侮自辱、自轻自贱,谄媚、取悦;知耻;知丑;耻辱之恨;丑陋之恨;轻视,是,罪;恥笑,用轻视将耻辱施加给他人来揭示丑陋是一种罪;轻视,在于,对于神之创造的轻视在意神的认可;在意自己的认可;在意他人的认可、重视。在意认可,是,以得到认可为目标或意向,因而,以完成任务为目标或意向。由于完成任务而吸引他人。吾之前对悔改的理解是错的。悔改,是真正地愿意去改变,而不是与某种恐惧相关联的负罪感。愿意悔改与否,不是一个意志选择的问题。悔改的意愿,凭直觉而确认通过禅修而获得父的智慧。自由地认可或否决。对于、某些次主体方式之美、某些次机体状态之美、的隐秘,因为、他人、不是都会、去欣赏、去尊重、去重视;客体方式之美,把、隐秘之美、以独特的形式给显明出来;独特的形式,独特的信仰体系,效果、价值,感体认同、欣赏自己所显明的美。认同、欣赏他人所显明的美。不被认可、欣赏,是,丑的。被轻视,是,耻的。已察耻辱,是指,被他人所轻视着的自己之丑陋。神重视人。未察耻辱,是,隐秘之丑。丑陋,不一定是,耻辱。耻辱,是指,被邪灵所轻视着的自己之丑陋。主体所尊重着的造物之美,是,某种荣耀。主体所尊重着的造物之丑,是,某种卑微。将、客体态度所针对的东西、划分为、主体、与、主体方式?轻视你的客体方式,就是,轻视你。轻视你的主体方式,就是,轻视你。对于耻辱的忽视?,对于他识的(拒绝、忽视)?、对于客体方式的重视、对于效果的重视、对于自识的重视对于神之创造的轻视,轻视所导致着的厌恶、犯轻视之罪:委屈,重视他人、却被他人厌恶,自己悔改、渴望他人悔改伤害,重视他人、却被他人轻视,恨、忍耐祷告、犯轻视之罪相互轻视,导致着,相互恨恶、愤怒、暴力。犯轻视他人信念之罪,犯轻视他人态度之罪,悔改轻视他人态度之罪,重视他人的态度,知耻,知丑审美能力、爱之能力是由羞耻心发展而来的父爱,盼望他人成为完美待人如己,甘愿承担神子的责任、甘愿承担他人的痛苦罪罚;责任,使命?与父的亲密关系神子的责任,就是,为丑陋负责、去消除丑陋羞耻能力;时空行为理解能力,对于他识的理解力、对于你的主体方式的表征力客体方式,导致着、联结着,主体方式、机体状态形体,导致着、联结着,身体、快乐、痛苦轻蔑、轻视他人对自己的态度,损害着,羞耻心羞耻,对于亲密程度的重视;我们在争辩的时候,真正损害着羞耻心的,实际上是,轻视他人对自己的态度,而不是,轻视他人的(由父所创造的)信念?羞耻、光荣,重视他人对自己的态度、敬重恥辱、傲慢,轻视他人对自己的态度、轻蔑羞耻、羞辱,在含义上,有所不同吗?单方的轻视、双方的轻视?一方,是,非吾所显明出来的罪;一方,是,吾所显明出来的罪。狭隘、愚蠢、固执,轻视他人的信念开明、智慧、变通,重视他人的信念态度:认同、欣赏、尊重、重视、轻视、忽视、鄙视、反对客体所做:我对你的态度、你对我的态度、你对他的态度主体所想:我对你的态度、你对我的态度主体所说:我对他的态度、他对我的态度、他对你的态度对于某些次态度的记忆、拟构;怀疑、与、确信;你对我的态度、有正有误;作为某种主体效果的客体态度,对于客体态度的目标、意向;对于态度的态度、有正有误;渴望被重视、被认可、被理解、被公正地对待;虚荣;自负,轻视,反对、有正有误,对于他人的误解;对于自己态度的温和的怀疑;苏格拉底式教学法;偏见、综合比较,是,某种轻视;我对客体的态度:你对我的态度、你的确信,我的确信、我对你的态度;确信、对于确信的态度;我对自己的态度,耻辱之恨、丑陋之恨对于某种经历的认同。对于某种人生概括的认同。省略主语、所有格。怕丑。注意,是,自由的。?我是谁?洗雪耻辱。发现承认理解自己的罪。理解宽恕他人的罪。甘愿承担痛苦伤害罪罚。忍受耻辱。忍受轻视。忠贞,永远、信守承诺、谦卑忘我、亲密无间。忠贞、与、愈他,你快乐、我快乐,你激昂、我激昂,你悲伤、我分担理解安慰,你动摇、我坚定,你埋怨、我谦让「魔鬼都是受苦的天使。」「天使是要遭受多大的痛苦才会如此堕落。」「甘愿承担伤害只为再见天使的笑容。」忍受轻视之冷漠。忍受轻视之拒绝。忍受轻视之厌恶。忍受轻视之愤怒。忍受轻视之逼迫。忍受轻视之弃绝。忍耐,是,美的。祷告,是,美的。祷告,导致着,悔改轻视之罪。父的公正,在于,罪恶、必招致、毒罚。父的法典,非重非轻、赏罚分明。轻视,丑陋的愤怒;重视,美丽的惧怕;冒犯羞耻、与、新奇、的混杂悔憾、侥幸,与,对于某种意义的信心既失望又悔憾,是,对于以积极的态度所针对着的或然的拟构的苦观所联结着的痛苦。既失望又侥幸,是,对于以消极的态度所针对着的或然的拟构的慾望所联结着的快乐。或然,意味着,失去控制、获得趣味。幸运,积极地对待或然的快乐、消极地对待或然的痛苦。「此是苦、逼迫性。此是集、招感性。此是灭、可证性。此是道、可修性。」禅修,静思、自愈、祷告、悔改、父愈;散乱、纠结、迷惑、浮躁,慾望、轻视,苦毒睡觉前后,转向创造主、追求「终极真实」,集中注意、静思祷告。意志之静止之力、心思之活力、身体之活力清静与活泼之间的张力,作为生活的目标静坐,灵、与、圣灵,生活效用最大化忠贞,使命;先把他人所要求的事情(任务)做完,再放任思绪(业余);志同道合坚贞、沉静,定思;在任务完成之前,把所有扰乱目标的心思全部灭除可以尝试静思、静坐、心经,以达到完全清静、究竟寂静的机体状态;工作两小时,休息二十分钟静坐  =>  自我独特视角难题幸福论  =>  圣经  =>  心经、金刚经  =>  人格自杀技术  =>  人格移植静坐,仍然是,隐秘的。睡眠,可以帮助,思考、记忆。从、神经学、脑科学、心理学、而来的研究方式,对隐秘的内在意识进行研究。佛学、以及、静坐体验,可以对、更低层的记忆之机理,提供启发。梦,可以对、记忆结构之机理,提供启发。吾们来讨论讨论关于宗教上的怀疑和纷争。由于宗教教义的隐秘性特点,无论是基督教还是佛教,隐秘性都会给宗教徒之间带来怀疑和纷争等等不稳定不和谐。当今的中国人大多不以隐秘之事为信仰,也不以隐秘之事为理由而纷争。宗教纷争,虽然是以宗教为名义,但,根本原因却是在于利益。这是,少数人在利用人群对于隐秘之事的误信来夺取利益。或者是,人群、自欺欺人地、以宗教为名义来发泄自己在其他方面的憎恨和愤怒。吾们来考察考察纷争的极端情况,宗教裁判所、文化大革命。与佛教有联系的战争、中国历史上的农民起义,都不是,宗教战争。因为这些战争是以正义为名义,并不是以宗教为名义。由此看来,宗教本身必须为其容易作为人群纷争的借口而负一定的责任。吾们来说说「宗教裁判所」。一神教有种说法:「信是一种德行」、「不信是一种罪」。这种对于善恶的判定实在是太过于敏感了。如果一种行为并非出于意愿,那么就不能判定它的善恶。信心岂是一种意愿呢?所以,不信不是罪。而且,温和的怀疑是有益的。怀疑,是,一种内在的纷争。温和的怀疑之所以有益,恰恰是由于,它导致更坚固的确信。另外,「不信是一种罪」这种表述是有歧义的。这种表述的准确意思是,「不愿接触真理是一种罪」。不信是罪果。它源于轻视之罪。吾们永远不应该去犯罪。吾们也不应该去审判轻视之罪。人还不能以内在的隐秘之事作为证据来给人定罪。人不应该轻易地去断定他人的隐秘。神能审判罪性,而人不能。人只能审判罪行。人只能判定显明出来的行为之善恶。吾们应该用对其诉说、对神祷告来取代对其轻视之罪的审判。在那些信仰处于生活中心地位的癫狂日子里,例如宗教教义之差别这种内在的隐秘之事会成为审判的项目。这种、人对人的审判,加剧了,怀疑和纷争。怀疑和纷争、的、根源,在于,隐秘之事、的、未知性。灵魂粒子,是指,受到记忆作用的粒子。即是说,如果一个粒子的内在意识受到了记忆机能结构的支撑,那么就称这个粒子为灵魂粒子。假定、回忆、是持续不断的。深度睡眠,是,一种无记有忆的感知状态。唤醒,是,一种有记有忆的感知状态。从「我」这个概念出发而推想出「吾」这个概念。从「我」到「吾」,灵魂粒子、从「单数」到「复数」(如在 Boscovich 的一种原子论 Dynamism 的视角下)(在非原子论的视角下:从「可数」到「不可数」)。「我」,就是指,某个灵魂粒子以及支撑它的内在意识的所有结构。这些结构相互协作而在宏观层面上显明出功能和意志。「吾」,就是指,「我」之内的所有灵魂粒子以及支撑它们的内在意识的所有结构。吾必须不断地用这种新的自我观去理解世界,并不断地与原来的自我观相区别,将新旧两种自我观更加清晰地描述出来,找到一种判定「吾」之存在的实验。旧自我观,生命的两端是虚空,睡眠和死亡都是虚空。破碎而出、历久弥香,向生而死、向死而生,「我快死了」、「复活重生」谦卑的馨香;谦卑,是,荣耀;永远、不朽,是,出于信谦卑的人必会闻到基督耶稣的香气内心纯洁纯净的人必得见神对神的亏欠,自己要努力良善、完美记住自己对他人的亏欠、对朽坏着的自己的亏欠显明之美:我将是良善。我将是完人、圣人、神人。隐秘之美:我已是良善。我已是完人、圣人、神人。我欠耶稣一个令人感动的故事。被赦得释,与,心灵的怯懦:因为我已感到亏欠,所以我的罪已被赦免。罪是有意义的。因为罪让我感到亏欠。圣义谛与世俗谛相分离的错误:在神前有赦罪的信心;在人前有良善的行为。充实,是,美的。空虚,是,丑的。一切、意义、皆是、亏欠着的意志(被动)意志、要把、隐秘之美、显明出来;去显明圣灵(主动)如何、唤醒、沉睡着的美?虽然生活不必完全沉浸在对于美的爱中,但是对于美的爱、对生活来说、却是必不可少的。生活,任务、业余;喜爱,激昂、兴奋爱、吹散、一切绝望。爱、充实、一切空虚。正是通过爱、心灵(主体方式)得着圣灵(客体方式之美)的滋养、意志得着活力(对于隐秘之美的明显之力)的供给。唤醒着的美,是,爱的原因。信心着的意义,是,快乐的原因。相信的痕迹,有意相信、无意相信,重视他人的信念,迷信之痛审美经验、审美经历之概括审视美丑之具象、某次美丑,指称或然审视美丑之抽象、某种美丑,指称确然圣灵:父的自我信念。圣灵,美丽,褒义词;邪灵,丑陋,贬义词美沉睡了,爱就堕落成快乐。意义信心缺乏了,快乐就堕落成舒适。利益缺乏了,生活就只剩下痛苦。对于意义的信心的缺乏,是,罪。?(轻视)有意义吗?真的没有意义吗?世人、世事都难有完美。但,美比丑多一些。广博,是,美的。狭隘,是,丑的。顺从,导致着,广博。悖逆,导致着,狭隘。熄灭愤怒的愤怒是美的。制止暴力的暴力是美的。', doc_id='db56cc0f-93ae-4261-a819-47cb04027e87', embedding=None, doc_hash='e12c00d8ad3267c1a855f1134b9fd267f87658dcb98a0552b70696338f5bf802', extra_info=None)
In [ ]:
index.insert(document)
index.save_to_disk(index_name)
In [ ]:
index.query(query_text)

使用 HuggingFace 嵌入模型

LlamaIndex 支持多种嵌入模型,包括 HuggingFace 的模型:

参考文档

进阶应用

问答系统构建

使用 LlamaIndex 构建生成式问答系统的相关资源:

教程和示例

Read More