1 分•作者: 1659447091•23 天前
返回首页
最新
7 分•作者: bjourne•23 天前
2 分•作者: andsoitis•23 天前
2 分•作者: alok-g•23 天前
14 分•作者: keepamovin•23 天前
1 分•作者: keepamovin•23 天前
2 分•作者: cptnslow•23 天前
2 分•作者: theYipster•23 天前
我一直想在我的桌面虚拟机上使用 QEMU/KVM,但长期以来,我一直对 virt-manager 缺乏对 NVIDIA 3D 加速的支持、对丑陋 XML 的死板拥抱,以及需要点击 15 个按钮才能将 ISO 附加到虚拟机镜像的令人费解的 UI 设计感到困惑。 当我进一步了解到 NVIDIA 损坏的 3D 加速是 libvirt 的错,而不是 QEMU 的 virtio 驱动程序时,我有了个想法……
看哪,vm-curator!一个用 Rust 编写的快速友好的虚拟机管理 TUI。 您可以直接使用 QEMU 创建、配置、组织和管理虚拟机。 没有 libvirt。 没有 XML。 没有怪异的 UI。 只有适度的友好性、自定义性和速度,才能真正地发挥作用。
最好的部分? 3D 半虚拟化与 NVIDIA 显卡(通过 virtio-vga-gl!)一起使用! 无需费力就能让 GPU 直通工作!
(免责声明:这与其他客户机 Linux 虚拟机配合良好,但不适用于 Windows 游戏。 如果您想在虚拟机中玩 Windows 游戏,直通是必须的。 vm-curator 将很快提供快速友好的支持。)
正在寻找贡献者(特别是帮助制作 ASCII 艺术),也欢迎捐款。 (Claude 帮了大忙,但这并非一种氛围编码的事务。 我们在这里结对编程了大约 10,000 行代码。 这实际上是一个学习 Rust 的好方法!)
5 分•作者: tosh•23 天前
107 分•作者: speckx•23 天前
2 分•作者: Hacakthon•23 天前
我是一名 SPPU 的计算机工程系学生。在用 React 19 做一个项目时,我意识到我们用于 SEO 的标准库(比如 React Helmet)仍然在使用“旧”方法。<p>问题所在:旧的库使用一种叫做“副作用”的技巧,在页面加载完成后才更改页面标题和元标签。这可能导致标题闪烁,或者让网站感觉稍微慢一些,因为浏览器需要做额外的工作。<p>解决方案:React 19 增加了一个内置功能,可以自动将标签移动到页面顶部(<head>)。我构建了 react-meta-seo,让每个人都能轻松使用这个新功能。<p>为什么它对开发者来说更简单:<p>无需“Provider”:你不需要将整个应用程序包裹在一个特殊的组件中。它只需放置在任何地方即可工作。<p>体积小巧:它小于 4KB。相比之下,旧的选项通常是 15KB 或更大。<p>不再出现 Google 数据错误:它会自动检查你的 Google 搜索数据 (JSON-LD),以确保其格式正确。<p>内置预览:我添加了一个工具,让你在编码时就能看到你的网站在 Twitter 或 Facebook 上的样子。<p>简单的站点地图工具:它包含一个命令行工具,可以为你生成 sitemap.xml。<p>我想构建一个使用新的 React 19 功能来使 SEO 变得更快、更容易设置的工具。我很乐意收到关于代码的反馈!<p>GitHub: <a href="https://github.com/ATHARVA262005/react-meta" rel="nofollow">https://github.com/ATHARVA262005/react-meta</a>
1 分•作者: shijizhi_1919•23 天前
嗨 HN,
我一直在试验 LLM 代理一段时间了,并且经常觉得,对于简单的流程(聊天、工具调用、小循环),现有的框架增加了大量的抽象和样板代码。
因此,我构建了一个名为 PicoFlow 的小型 Python 库。目标很简单:
使用普通的异步 Python 来表达代理工作流程,而不是特定于框架的图或链。
最小的聊天代理
每个步骤都只是一个异步函数,并且工作流程通过 >> 组合:
```python
from picoflow import flow, llm, create_agent
LLM_URL =
“llm+openai://api.openai.com/v1/chat/completions?model=gpt-4.1-mini&api_key_env=OPENAI_API_KEY”
@flow
async def input_step(ctx):
return ctx.with_input(input(“You:”))
agent = create_agent(
input_step >>
llm(“Answer the user: {input}”, llm_adapter=LLM_URL)
)
agent.run()
```
没有链,没有图,没有单独的提示/模板对象。您可以通过直接在异步步骤中设置断点来调试。
控制流就是 Python
循环和分支使用普通的 Python 逻辑编写,而不是 DSL 节点:
```python
def repeat(step):
async def run(ctx):
while not ctx.done:
ctx = await step.acall(ctx)
return ctx
return Flow(run)
```
该框架只调度步骤;它不会试图控制您的控制流。
切换模型提供商 = 更改 URL
另一个设计选择:模型后端通过单个 LLM URL 配置。
OpenAI:
```python
LLM_URL =
“llm+openai://api.openai.com/v1/chat/completions?model=gpt-4.1-mini&api_key_env=OPENAI_API_KEY”
```
切换到另一个与 OpenAI 兼容的提供商(例如 SiliconFlow 或本地网关):
```python
LLM_URL =
“llm+openai://api.siliconflow.cn/v1/chat/completions?model=Qwen/Qwen2.5-7B-Instruct&api_key_env=SILICONFLOW_API_KEY”
```
工作流程代码完全没有变化。只有运行时配置会发生变化。这使得 A/B 测试模型和切换提供商在实践中更便宜。
何时有用(以及何时无用)
如果您满足以下条件,PicoFlow 可能会很有用:
- 希望快速原型代理
- 更喜欢显式的控制流
- 不想学习大型框架抽象
如果满足以下条件,它可能不是理想选择:
- 严重依赖预构建的组件和集成
- 想要一个包含所有功能的编排平台
仓库:
[https://github.com/the-picoflow/picoflow](https://github.com/the-picoflow/picoflow)
这仍然处于早期阶段,并且具有主观性。我非常感谢大家对这种“工作流程即 Python”风格是否对其他人有用的反馈,或者人们是否已经用更好的方法解决了这个问题。
谢谢!
1 分•作者: bookofjoe•23 天前
1 分•作者: udaysagar•23 天前
1 分•作者: transpute•23 天前
11 分•作者: riffic•23 天前
1 分•作者: reaperducer•23 天前
1 分•作者: Lwrless•23 天前
13 分•作者: petethomas•23 天前
2 分•作者: bhouston•23 天前