4作者: Weves7 个月前
大家好,我们是 Onyx 的 Chris 和 Yuhong(<a href="https://github.com/onyx-dot-app/onyx" rel="nofollow">https://github.com/onyx-dot-app/onyx</a>)。我们正在构建一个开源聊天工具,它兼容任何 LLM(专有 + 开源),<i>并且</i>为这些 LLM 提供它们所需的工具,以使其发挥作用(RAG、网络搜索、MCP、深度研究、记忆等)。 演示:<a href="https://youtu.be/2g4BxTZ9ztg" rel="nofollow">https://youtu.be/2g4BxTZ9ztg</a> 两年前,Yuhong 和我遇到了同样的问题。我们所在的团队都在不断壮大,但要从文档、Slack、会议记录等地方找到正确的信息,简直难如登天。现有的解决方案要么需要发送我们公司的数据,要么缺乏定制性,而且坦白说,效果也不好。所以,我们开始着手 Danswer,这是一个开源的企业搜索项目,旨在实现自托管和易于定制。 随着项目的成长,我们开始看到一个有趣的趋势——尽管我们明确是一个搜索应用程序,但人们只想用 Danswer 与 LLM 聊天。我们会听到:“连接器、索引和搜索都很棒,但我打算先连接 GPT-4o、Claude Sonnet 4 和 Qwen,为我的团队提供一种安全的使用方式”。 许多用户后来会添加 RAG、代理和自定义工具,但大部分的使用仍然是“基本聊天”。我们想:“当已经存在其他 AI 聊天解决方案时,为什么人们还要挪用一个企业搜索呢?” 在与用户持续交流的过程中,我们意识到两个关键点: (1) 仅仅为公司提供对 LLM 的安全访问,并配备出色的用户界面和简单工具,就已经是 AI 带来的巨大价值的一部分了。 (2) 很好地提供这一点比你想象的要难得多,而且标准非常高。 像 ChatGPT 和 Claude 这样的消费级产品已经提供了出色的体验——而使用 AI 进行工作(理想情况下)是公司里每个人每天都要使用 10 次以上的事情。人们期望获得同样流畅、简单和直观的用户体验,并具备完整的功能集。要做好数百个小细节,才能将体验从“这能用”提升到“这感觉很神奇”,这并不容易,而且该领域还没有其他产品能够做到这一点。 所以,大约 3 个月前,我们转向了 Onyx,这是一款开源聊天 UI,具有: - (真正) 世界级的聊天用户体验。既适用于从小就接触 AI 的应届毕业生,也适用于首次使用 AI 工具的行业资深人士。 - 支持所有常见的附加组件:RAG、连接器、网络搜索、自定义工具、MCP、助手、深度研究。 - RBAC、SSO、权限同步、易于本地部署,使其适用于大型企业。 通过构建跨模型提供商运行的深度研究和代码解释器等功能,我们学到了很多关于工程 LLM 的非显而易见的事情,这些对于使 Onyx 能够运行至关重要。我想分享两个特别有趣的(欢迎在评论中讨论更多)。 首先,上下文管理是需要正确处理的最困难和最重要的任务之一。我们发现,LLM 很难记住长对话中的系统提示和之前的用户消息。即使是像“忽略类型 X 的来源”这样的简单指令,在系统提示中也经常被忽略。这会因多次工具调用而加剧,这些调用通常会提供大量上下文。我们通过“提醒”提示解决了这个问题——一个简短的 1-3 句话的说明,插入在用户消息的末尾,描述了 LLM 必须遵守的不可协商的规则。根据经验,LLM 最关注上下文窗口的末尾,因此这种放置方式提供了最高的遵守可能性。 其次,我们需要建立对某些模型在使用工具时的“自然倾向”的理解,并围绕它们进行构建。例如,GPT 系列模型经过微调,可以使用在 Jupyter notebook 中运行的 Python 代码解释器。即使被明确告知,它也拒绝在最后一行添加 `print()`,因为在 Jupyter 中,最后一行会自动写入 stdout。其他模型没有这种强烈的偏好,因此我们不得不设计我们的模型无关的代码解释器,使其也自动 `print()` 最后一行未包装的代码。 到目前为止,我们已经有一个财富 100 强的团队 fork 了 Onyx,并为 10k+ 员工提供了一个单一界面访问所有模型,并为每个部门创建了数千个特定于用例的助手,每个助手都使用最适合该工作的模型。我们已经看到在敏感行业运营的团队完全隔离了 Onyx,并使用本地托管的 LLM 来提供一个以前不可能实现的协同助手。 如果您想试用 Onyx,请按照 <a href="https://docs.onyx.app/deployment/getting_started/quickstart">https://docs.onyx.app/deployment/getting_started/quickstart</a> 在 15 分钟内使用 Docker 在本地进行设置。对于我们的云服务:<a href="https://www.onyx.app/">https://www.onyx.app/</a>。如果您希望看到任何能让您毫不犹豫地替换您的 ChatGPT Enterprise/Claude Enterprise 订阅的内容,我们很乐意听到!
1作者: forge_craft7 个月前
我将时间线分割成块,然后按小时、分钟和秒进行细分。每个 256 秒的间隔(大约 4 分钟)对应特定的坐标。结果呢?地球上大约每 2.5 平方米就代表一个独特的时间戳。 来看看吧:https:&#x2F;&#x2F;dateatlas.onrender.com&#x2F;
1作者: acro-v7 个月前
您好, 我正在构建一个终端原生代码生成工具,最近的更新之一是为那些不想将代码上传到第三方服务器的用户打包一个本地模型(Qwen 2.5 Coder 7B,首次下载成功)。 用户对这个新增功能的初步反馈是积极的——但我对此表示怀疑:这个模型相当基础,质量无法与在线产品相提并论。 因此,我计划改进 RAG(检索增强生成)能力,构建包含相关源文件片段的消息,添加规划调用,添加验证循环,也许还会进行多样本重排等:所有这些都是常见的技术,如果正确实施,可以提高输出质量。 所以,问题是:我相信(希望?)通过实现所有这些功能,7B 模型可以提升到大约 20B 模型的质量,您是否同意这种可能性,或者您认为这会是徒劳的,并且不会发生这种程度的改进? 源代码在这里——如果您喜欢,请给它点个星:https://github.com/acrotron/aye-chat
3作者: megraf7 个月前
平台在每个用户的个人资料中显示账户注册国家/地区是否有利? 我很好奇 HN 社区对此的看法,涉及隐私、版务、透明度、反滥用等角度,以及这是否能显著提高讨论质量。 公开展示这类元数据,有哪些强有力的理由支持或反对?
2作者: staloriana7 个月前
我为 .NET 构建了一个小型、针对缓存优化的 B+ 树存储引擎,名为 BTreePlus。 目标不是构建一个通用数据库,而是探索在针对 CPU 缓存行为、小型固定大小页面以及可预测的读/写路径进行调整时,一个最小的、现代 B+ 树设计能走多远。 在我的基准测试(链接在仓库中)中,BTreePlus 在特定键值风格的工作负载上表现出比 SQLite 和 Postgres 更好的吞吐量,主要包括: - 单键点查找 - 带有小页面的顺序插入 - 无复杂 SQL 层的读密集型场景 我希望数据库和系统工程师能就以下方面提供反馈: - 页面布局/拆分-合并逻辑 - 锁存模型 - 设计是否避免了经典的 B-树陷阱 - 基准测试方法(乐于调整或重新运行) NuGet:[https://www.nuget.org/packages/BTreePlus](https://www.nuget.org/packages/BTreePlus)