本周Github上17款有趣项目LLocalSearch等

本周Github上有趣的项目、工具和库

1、LLocalSearch
LLocalSearch 是一个使用 LLM 代理的完全本地运行的搜索聚合器。用户可以提出问题,系统将使用一系列大模型来找到答案。用户可以看到代理的进度和最终的答案。
不需要 OpenAI 或 Google API 密钥。 

特征

  •  完全本地化(无需 API 密钥)
  •  在“低端”LLM 硬件上运行(演示视频使用 7b 模型)
  •  进度日志,可以更好地了解搜索过程
  •  后续问题
  •  移动友好界面
  •  使用 Docker Compose 快速轻松地部署
  •  Web 界面,允许从任何设备轻松访问
  •  手工制作的 UI,具有浅色和深色模式

2、ClangQL
Clang AST Query Language:ClangQL 是一个工具,允许您使用 GitQL SDK 对 C/C++ 代码而不是数据库文件运行类似 SQL 的查询。

请注意,ClangQL 中的所有关键字都不区分大小写,与 SQL 类似。

SELECT 1
SELECT 1 + 2
SELECT LEN("File Query Language")
SELECT
"One" IN ("One", "Two", "Three")
SELECT
"File Query Language" LIKE "%Query%"

SELECT * FROM functions
SELECT COUNT(name) from functions WHERE return_type =
"int"
SELECT DISTINCT name AS function_name FROM functions


3、llm.c
使用简单、原始的 C/CUDA 进行大模型培训。

不需要 245MB 的 PyTorch 或 107MB 的 cPython。例如,训练 GPT-2(CPU,fp32)的单个文件中就有 ~1,000 行简洁的代码。它能立即编译和运行,与 PyTorch 的参考实现完全一致。

我之所以选择 GPT-2 作为第一个工作示例,是因为它是 LLM 的鼻祖,是现代堆栈的首次组合。

doc/layernorm/layernorm.md中附加了一个非常小的教程。这是一个简单的分步指南,用于实现 GPT-2 模型的单层(layernorm 层)。这是理解如何在 C 中实现层的一个很好的起点。

目前,正在研究

  • 直接使用 CUDA 实现,这将大大提高速度,并可能接近 PyTorch。
  • 使用 SIMD 指令加速 CPU 版本,X86 上的 AVX2 / ARM 上的 NEON(如 Apple Silicon)。
  • 更现代的架构,如 Llama2、Gemma 等。
  • 对于 repo,我希望同时维护干净、简单的参考实现,以及更优化的版本,这些版本可以接近 PyTorch,但代码和依赖性只占很小一部分。

4、uncch
隐藏带有不可见 Unicode 字符的消息。

unch允许您使用 VARIATION SELECTOR-17 ( E0100) 到 VARIATION SELECTOR-25 ( E01EF) 将一个字符串隐藏在另一个字符串中。它支持对包含超出标准 ASCII 范围的字符的字符串进行编码。


5、gram
Gram 是 Klarna 自己的威胁模型图表工具。

由 Klarna 的安全开发团队内部开发。它是一个 Web 应用程序,可供工程师协作为其系统创建威胁模型,提供一种易于理解的方式将系统记录为附加威胁/控制的数据流图。

特点

  • 专门用于威胁建模的全功能图表工具。
  • 通过 websocket 与多个用户协作编辑
  • 与您的系统/资产库存紧密结合
  • 根据您的技术堆栈自动提出威胁和控制建议
  • 审查安全冠军使用的系统并确保模型质量
  • 集成 Jira 和 SSO (Okta) 等无聊的企业内容

6、AutoMQ
Apache Kafka 的云原生实现,可将您的云基础设施费用减少高达 90%。 

手动在云上运行 AutoMQ:使用云上发布的tgz文件手动部署AutoMQ,目前兼容AWS、阿里云、腾讯云、华为云、百度云。

AutoMQ 使用 logSegment 作为 Apache Kafka 的代码方面来融入我们的功能。该架构包括以下主要组件:

  • S3Stream:AutoMQ 提供的基于对象存储的流媒体库。它是AutoMQ的核心组件,负责向对象存储读写数据。了解更多
  • Stream:Stream 是映射 Apache Kafka 的 logSegment 的抽象。 LogSegment的数据、索引和其他元数据将映射到不同类型的流。了解更多
  • 持久缓存层:AutoMQ使用AWS EBS等小型云块存储作为持久缓存层来加速写入。请注意,这不是分层存储,AutoMQ 代理可以与持久缓存层完全解耦。了解更多
  • 流对象:AutoMQ的数据是按流对象组织的。通过索引通过流对象id读取数据。一个流有一个流对象。了解更多
  • 流集对象:流集对象是小流对象的集合,旨在减少 API 调用时间和元数据大小。了解更多

7、pgmock
pgmock是一个内存中的 PostgreSQL 模拟服务器,用于单元和 E2E 测试。它不需要外部依赖项,并且完全在 Node.js 和浏览器上的 WebAssembly 中运行。

可以像这样运行内存服务器:

import { PostgresMock } from "pgmock";

const mock = await PostgresMock.create();
const connectionString = await mock.listen(5432);

它是如何工作的?

在 WebAssembly 中运行 Postgres 有两种方法;


前者性能更高,使用的内存少得多,但仅支持单用户模式(无连接),并且没有扩展。

为了防止测试和生产之间的差异,并且由于性能通常不是测试中关注的问题,pgmock目前使用后一种方法。在中期,一旦原生 Postgres WASM 分支成熟,我们计划提供这两个选项,并最终默认切换到原生 WASM。除了内部的 API 之外,我们预计不会有太多重大更改PostgresMock.subtle。

pgmock与之前的浏览器中的 Postgres 项目不同,它完全在 JavaScript 运行时内提供完整的功能兼容性,而不依赖于网络代理进行通信。我们通过在 JavaScript 中模拟网络堆栈来实现这一点,该堆栈的行为类似于真实网络,即使在不允许原始套接字访问的平台上也可以模拟 TCP 连接。

8、Plandex
一个用于复杂任务的开源、基于终端的人工智能编码引擎。

Plandex 使用长时间运行的代理来完成跨多个文件且需要多个步骤的任务。它将大任务分解为更小的子任务,然后实现每一个子任务,一直持续到完成工作为止。它可以帮助您处理积压的工作,使用不熟悉的技术,摆脱困境,并花更少的时间在无聊的事情上。

使用大模型构建复杂的软件

  •  更改会累积在受保护的沙箱中,以便您可以在自动将它们应用到项目文件之前对其进行查看。内置版本控制允许您轻松返回并尝试不同的方法。分支允许您尝试多种方法并比较结果。
  •  在终端中有效管理上下文。轻松将文件或整个目录添加到上下文中,并在工作时自动更新它们,以便模型始终具有项目的最新状态。
  •  Plandex 依赖于 OpenAI API,需要OPENAI_API_KEY环境变量。对开源模型、Google Gemini 和 Anthropic Claude 的支持即将推出。使用OPENAI_ENDPOINT 自定义 OpenAI 端点的环境变量。
  •  Plandex 支持 Mac、Linux、FreeBSD 和 Windows。它从没有依赖关系的单个二进制文件运行。

特点:

  • 超越自动完成功能,利用人工智能构建复杂的功能。
  • 使用 ChatGPT 停止以鼠标为中心、复制粘贴的疯狂编码。
  • 在终端中有效管理上下文。
  • 确保 AI 模型始终在上下文中拥有最新版本的文件。
  • 保持对上下文内容以及您使用的令牌数量的精细控制。
  • 在应用更改之前,在受保护的沙箱中进行实验、修改和审查。
  • 根据需要倒回并重试。
  • 探索分支的多种方法。
  • 在后台运行任务或并行处理多个任务。
  • 尝试不同的模型和模型设置,然后比较结果。

类似的工具:


9、Kuto
Kuto 使您网站的 JS 更新更好、更快、更难、更强。它通过重复使用您已经发送的代码来减少您的下载大小。    

是一种在网络上传输代码的新颖方法。它允许您重复使用客户已有的代码来发布更新。

Kuto 没有专注于最小化输出或任何幂等的东西,而是采取了不同的路线。

  1. 在第一次构建时:
    • Kuto 将源 JS 分成“主要”部分和通常较大的代码“语料库”,该代码没有副作用。
    • 该语料库可以永久缓存,并且其输出名称中包含哈希时间戳。

  1. 在每一个进一步的构建中:
    • Kuto还是把JS源码拆出来了
    • 它识别任何现有语料库中可用于“满足”源 JS 的代码
      • 每个语料库要么保持不变,要么随着函数、语句等的变化而缩小
  • 任何不能满足的代码都会被放入一个全新的语料库中,该语料库也可以永久缓存。

     Kuto 的主要论点是,通过磁盘 I/O 加载比您需要的稍大的文件比重新编译要快。
    Kuto 将有助于企业应用程序(因为 JS 臃肿,没有人真正关心)或社交媒体(因为高级用户经常来)。

    10、go-mysql-server
    纯 Go 编写的兼容 MySQL 的数据库引擎

    go-mysql-server是一个与数据源无关的 SQL 引擎和服务器,它使用 MySQL 方言和有线协议对您提供的数据源运行查询。包含一个简单的内存数据库实现,您可以通过实现自己的后端来查询所需的任何数据源。

    Dolt是一个具有 Git 风格版本控制的 SQL 数据库,是该包的主要生产数据库实现。

    除了特定限制(见下文)之外, go-mysql-server是 MySQL 的直接替代品。任何适用于 MySQL 的客户端库、工具、查询、SQL 语法、SQL 函数等也应该适用于go-mysql-server。如果您发现功能上的差距,请提出问题。

    本项目范围

    • 用于查询数据源的 SQL 服务器和引擎。
    • 内存数据库后端实现适合在测试中使用。
    • 您可以使用接口来实现新的后端来查询您自己的数据源。
    • 有一些注意事项并使用完整的数据库实现,即插入式 MySQL 数据库替换。

    go-mysql-server有两个主要用例:
    1. 在golang测试环境中替代MySQL,使用内置 memory数据库实现。
    2. 通过实现一些接口,使用 SQL 查询提供对任意数据源的访问。最完整的现实实现是Dolt

    11、学生管理系统
    该项目是一个使用 Spring Boot 和 Thymeleaf 开发的基于 Web 的应用程序,旨在简化学生记录的管理。

    特点:

    • 学生记录管理:轻松添加、编辑和删除学生信息。
    • 用户友好的界面:直观的用户界面,可实现无缝导航和操作。
    • 未来计划:扩展到包括教师管理功能,以实现全面的学术记录管理。

    技术:

    • Java
    • Spring Boot
    • Thymeleaf
    • MySQL

    12、23c-springboot3-jpa-ucp
    使用 Spring Boot 3、Spring Data JPA 与 Hibernate 的 Java 持久性以及 Oracle Database 23c 免费版 - 开发人员版

    13、drawdb
    免费、简单、直观的数据库设计工具和 SQL 生成器。

    DrawDB 是浏览器中强大且用户友好的数据库实体关系 (DBER) 编辑器。只需点击几下即可构建图表、导出 SQL 脚本、自定义编辑器等等,无需创建帐户。请在此处查看全套功能。

    14、FreeAskInternet
    FreeAskInternet 是一个完全免费、私有且本地运行的搜索聚合器,并使用 LLM 生成答案,无需 GPU。用户可以提出问题,系统将使用searxng进行多引擎搜索,并将搜索结果合并到ChatGPT3.5 LLM中,并根据搜索结果生成答案。

    所有进程都在本地运行,不需要 GPU 或 OpenAI 或 Google API 密钥。

    特征

    • 完全免费(不需要任何API密钥)
    •  完全本地化(无需GPU,任何计算机都可以运行)
    • 完全私有(所有东西都在本地运行,使用自定义llm)
    •  无需 LLM 硬件即可运行(无需 GPU!)
    •  使用免费的 ChatGPT3.5 / Qwen / Kimi / ShipuAI(GLM) API(无需 API 密钥!感谢 OpenAI)
    •  定制LLM(ollama,llama.cpp)支持,是的,我们喜欢ollama!
    •  使用 Docker Compose 快速轻松地部署
    •  Web 和移动友好界面,专为 Web 搜索增强的 AI 聊天而设计,允许从任何设备轻松访问。

    怎么运行的?

    1. 系统在FreeAskInternet UI界面(本地运行)中获取用户输入的问题,并调用searxng(本地运行)在多个搜索引擎上进行搜索。
    2. 抓取搜索结果链接内容并传递给ChatGPT3.5/Kimi/Qwen/ZhipuAI/ollama(通过使用自定义llm),让LLM根据此内容作为参考回答用户问题。
    3. 将答案传输到聊天 UI。
    4. 我们支持自定义LLM设置,因此理论上无限的LLM支持。

    15、AutoCodeRover
    自主程序改进,具有项目结构意识的自主软件工程师,旨在改进自主程序。解决了完整 SWE 工作台中 15.95% 的任务

    AutoCodeRover 是一种用于解决 GitHub 问题(错误修复和功能添加)的全自动方法,其中 LLM 与分析和调试功能相结合,以优先考虑最终导致补丁的补丁位置。
    AutoCodeRover 解决了SWE-bench约16%的问题(总共 2294 个 GitHub 问题)和SWE-bench lite 约22%的问题(总共 300 个 GitHub 问题),提高了 AI 软件工程师当前最先进的效率。

    AutoCodeRover 的工作分为两个阶段:

    • 上下文检索:LLM 提供代码搜索 API 来导航代码库并收集相关上下文。
    • 补丁生成:大模型尝试根据检索到的上下文编写补丁。

    AutoCodeRover 有两个独特的功能:

    • 代码搜索 API 具有程序结构感知能力。 AutoCodeRover 不是通过纯字符串匹配来搜索文件,而是在抽象语法树中搜索相关的代码上下文(方法/类)。
    • 当测试套件可用时,AutoCodeRover 可以利用测试用例,通过执行统计故障定位来实现更高的修复率。

    16、schedule_free
    PyTorch 中的无调度优化器。

    无需时间表即可更快地进行训练 - 无需提前指定停止时间/步骤!

    无调度学习不需要递减的学习率调度,但通常优于或在最差的情况下匹配 SOTA 调度,例如余弦衰减和线性衰减。一次只需要存储两个序列(第三个序列可以根据另外两个即时计算),因此该方法具有与基本优化器相同的内存要求(参数缓冲区+动量)。

    17、Loki
    用于事实验证的开源工具
    旨在自动化验证事实的过程。它提供了一个全面的管道,用于将长文本剖析成单独的主张、评估其验证的价值、生成证据搜索的查询、爬取证据并最终验证主张。该工具对于记者、研究人员和任何对信息真实性感兴趣的人特别有用。

    特点

    • 分解器:将大量文本分解为易于理解的独立主张,为详细分析奠定基础。
    • 值得检查:评估每个主张的潜在意义,过滤掉含糊或模棱两可的陈述,重点关注那些真正重要的陈述。例如,诸如“MBZUAI 拥有广阔的校园”之类的模糊说法被认为是不值得的,因为“广阔”的性质含糊不清。
    • 查询生成器:将值得检查的声明转换为精确的查询,准备好在广阔的互联网中寻找真相。
    • 证据爬行者:进入数字领域,检索构成知情验证基础的相关证据。
    • ClaimVerify:检查收集的证据,确定每个声明的真实性,以维护信息的完整性。