@ai- matrx/ 应用程序
Applet是自定义接口,一个代理基于一个人自己的数据和平台 特性。 这个包是Applet和任何主机之间的出入口.
| 条目 | 这是什么 |
|---|---|
@ai-matrx/applets | 合同类型和 AppletHost 接口。 没有反应. |
@ai-matrx/applets/host | createMemoryHost(spec) ——用于测试和开发的内存宿主. |
@ai-matrx/applets/react | Applet 代码导入内容 : useRows, (中文(简体) ), useJob, (中文(简体) ), useConversation, (中文(简体) ), WritingBox, (中文(简体) ), useValue, (中文(简体) ), useAction, (中文(简体) ), Pages,, , , , , , , , |
@ai-matrx/applets/platform | createPlatformHost(opts) ——直播平台上真正的主机;每个客户端都注入. |
@ai-matrx/applets/frame | mountApplet(record, host, scope) ——编译被存储的Applet并渲染出. |
import { createMemoryHost } from "@ai-matrx/applets/host";
import { mountApplet } from "@ai-matrx/applets/frame";
const host = createMemoryHost({ record, tables: { posts: { columns, rows } } });
const mounted = mountApplet(record, host, { entries: [], shadowDangerousGlobals: true });
if (mounted.ok) root.render(<mounted.Component />);
在一个小程序内 :
import { useRows, useJob, JobOutput, Pages } from "@ai-matrx/applets/react";
export default function Posts() {
const { rows, update, error } = useRows("posts"); // optimistic, versioned writes
const draft = useJob("draft"); // a declared job, by alias
return (
<>
<button onClick={() => draft.run({ topic: "launch" })}>Draft</button>
<JobOutput job={draft} label="Drafting" /> {/* the run streams here */}
<ul>{rows.map((r) => <li key={r._id}>{String(r.title)}</li>)}</ul>
</>
);
}
工作总是能顺利完成 <JobOutput job={…} /> 从来没有 job.text 在某一段中,
从来没有一个"忙"的标签,而它的工作,从来没有 <Kind> 打开 job.result 在结尾。 由主机制作
运行于其一个运行中的管道(流出文本、部分类型、工具步骤、装载和出错,
最终类型)通过 renderRun。如果没有空间流入内线,请使用
<JobOutput job={…} mode="window" /> (每次运行在主机浮动运行窗口打开一次)或呼叫
job.open() 从按钮。 主机供应 renderRun 编号 : openRun 改为 mountApplet 编号 : AppletFrame。 。 。 .
在跑步之前 跑步从未成功过. 一个标题,如"Content ready for
上文“出版物” <JobOutput> 仅在 job.status === "done"; 工作或失败后
(单位:千美元)job.status === "error"),说到底发生了什么或什么都没有. job.error.message 永远是句句
供访客使用forVisitor;服务器自己的单词去主机的错误检查器,从不去页面.
一个人写的盒子 <WritingBox value={text} onValueChange={setText} /> 从来没有 Textarea。 。 。 .
它使主机的写入框(renderWritingBox),搭载平台的麦克风(起诉书)和
读-声; <ConversationComposer> 写过它.
一个谈话是 useConversation(alias) ——与一个申报的工作进行多回合聊天. 第一个
send(text, variables?) 以后再开始 send 继续同样的谈话, stop() 停下来
轮到飞行。 把它给 <ConversationOutput conversation={…} />: 每个答题流经
东道主的同一条直播管道, 从未手动交付.
const chat = useConversation("assistant");
<ConversationOutput conversation={chat} label="Answering" />
<button onClick={() => chat.send(draftText)}>Send</button>
虎克从不掷出:每个答案一个 status 还有一个 error 带有系统本身的句子。 打开 useRows 编号 : useRow, (中文(简体) ),
error 表示无法读取数据; 拒绝保存的存储是 writeError (它的句子) - 显示在旁边
保存的控件,从不替换列表.
React和React DOM是同级依赖关系. 这份合同是
common-docs/projects/applets/CONTRACTS.md (v2) (中文(简体) ).