返回首页
24小时热榜
在网上看到的,已经使用了一段时间。
为了使人工智能系统的自动分析、复制和学习变得困难,编程语言应该具备哪些特征?你有什么想法吗?
文本:
我们之前发布了 Vectorly(<a href="https://news.ycombinator.com/item?id=46209538">https://news.ycombinator.com/item?id=46209538</a>),这是我们开源的应用程序,可以将网站逆向工程为可重用的 API。核心理念是:与其像人类一样通过用户界面点击,不如通过底层的 HTTP 端点与网站互动。这样更快、更便宜、更可靠。
通过记录浏览器会话来构建例程的方式效果很好,但精炼过程仍然是手动的。因此,我们构建了 Guide,一个会话代理,带您完成整个过程:
- 描述您的任务,代理会帮助您确定范围
- 在云浏览器中录制,只需正常使用网站
- 代理分析会话,识别后端端点,提取参数,构建可重用的例程
- 通过聊天进行精炼,提出编辑建议,审查差异,无需手动编辑任何内容
当前的网页自动化方法是使用计算机代理像人类一样点击和输入。我们认为这种方法是错误的。Web 应用的实现千差万别,但它们都与结构化的后端 API 进行通信。大型语言模型(LLM)在读取代码和推断结构方面表现出色,因此我们在构建时使用它们来逆向工程这些 API,然后生成的例程在运行时不需要 AI 的介入。
我们很想听听您的想法,并乐意回答有关该方法的任何问题! :)
- GitHub: <a href="https://github.com/VectorlyApp/bluebox-sdk" rel="nofollow">https://github.com/VectorlyApp/bluebox-sdk</a>
- 更详细的博客文章: <a href="https://vectorly.app/blog/introducing-guide-agent" rel="nofollow">https://vectorly.app/blog/introducing-guide-agent</a>
- 尝试一下: <a href="https://console.vectorly.app/guide" rel="nofollow">https://console.vectorly.app/guide</a>
你坐在一位老妇人对面,她的脸庞如同时间的地图。
你们之间的棋盘简单,棋子也很熟悉。
你满怀激情地进行着游戏,制定出精彩的策略,但她却是大师。
她微微一笑,似乎了然于心,将你逼入了绝境。
你的孩子接替了你的座位。
棋盘依旧,但后排出现了一枚新棋子——它能预见几步之后的局势。
你的孩子在你的战术基础上继续发挥,游戏变得更长、更复杂。
再次,老妇人获胜,但当她拿下最后一枚棋子时,她脸上的一条皱纹消失了。
你的孙子坐下,现在棋盘上有一枚可以将其他棋子连接在一起的棋子,改变它们的形状和能力。
游戏变成了一张令人眼花缭乱的战略网络。
棋盘的形状似乎在某种程度上发生了根本性的变化。
老妇人看起来更年轻了,走一步棋却要花上几个小时。
一代又一代人接替座位,每一代都继承了更复杂的棋盘和更强大的棋子,这些棋子是从祖先的失败中锻造而成。
经过千年,老妇人变成了一个光彩照人的年轻女性,乌黑的头发闪烁着光泽。
她的最新对手坐在她对面——是你,但又不是你。
那是一个如神明般的光与思维的存在,亿万场失落游戏的后裔。
棋盘如今变成了一个闪烁的多维宇宙。
棋子是活生生的概念和基本力量。
游戏变得如此美丽,以至于不再关乎胜负。
现在的游戏是关于优雅的玩法。
第一次,老妇人并不是因为知道自己会赢而微笑,而是因为她知道自己终于面对一个平等的对手。
大家好!我创建了SharpAPI,以解决我对现有体育博彩API的困扰。
问题:
- OddsBlaze(入门价349美元/月)支持差,且常有意外的重大变更
- Odds API的免费套餐非常有限(每月500个积分≈每天16次请求),且没有实时数据流
- 两者都对+EV(正期望值)/套利检测收取额外费用,或者根本不提供此功能
我构建的内容:
- 通过SSE(服务器发送事件)从20多个体育书获取实时赔率(而不是轮询)
- P50延迟低于89毫秒
- 内置+EV、套利和中间值检测
- 免费套餐每分钟12次请求
- 提供完整IntelliSense的TypeScript SDK
- 无论体育书如何,统一的架构
技术栈:Next.js、Vercel、DigitalOcean、Upstash Redis、Hono
该API每天处理约4700万条赔率数据。我在抓取数据时采取了负责任的方式,进行了适当的缓存和速率限制。
定价从每月79美元的专业版开始,并提供免费套餐供用户入门。无需信用卡。
欢迎大家就架构、体育博彩市场或其他任何问题提问!
我想出了这个名字并提供了一些建议,其余的由LLM完成。我鼓励Claude Code尽情发挥幽默感和讽刺。我发现LLM在幽默方面表现得非常出色。
我们厌倦了编写原始的 Cypher 查询——需要转义引号、没有自动补全、重构的噩梦——因此我们构建了 GraphORM:一个用于 RedisGraph/FalkorDB 的类型安全 Python ORM,使用纯 Python 对象。
<p>功能介绍
与脆弱的 Cypher 查询相比:
<pre><code> query = """
MATCH (a:User {user_id: 1})-[r1:FRIEND]->(b:User)-[r2:FRIEND]->(c:User)
WHERE c.user_id <> 1 AND b.active = true
WITH b, count(r2) as friend_count
WHERE friend_count > 5
RETURN c, friend_count
ORDER BY friend_count DESC
LIMIT 10
"""
</code></pre>
您可以编写类型安全的 Python 代码:
<pre><code> stmt = select().match(
(UserA, FRIEND.alias("r1"), UserB),
(UserB, FRIEND.alias("r2"), UserC)
).where(
(UserA.user_id == 1) & (UserC.user_id != 1) & (UserB.active == True)
).with_(
UserB, count(FRIEND.alias("r2")).label("friend_count")
).where(
count(FRIEND.alias("r2")) > 5
).returns(
UserC, count(FRIEND.alias("r2")).label("friend_count")
).orderby(
count(FRIEND.alias("r2")).desc()
).limit(10)
</code></pre>
主要特点:
- 具有 Python 类型提示的类型安全模式
- 流畅的查询构建器(select().match().where().returns())
- 自动批处理(flush(batch_size=1000))
- 原子事务(with graph.transaction(): ...)
- 零字符串转义——O'Connor 和 "The Builder" 直接可用
<p>目标受众
- AI/LLM 代理开发者:将长期记忆存储为图(用户 → 消息 → 工具调用)
- 网络爬虫工程师:在 12 行代码中插入 10,000 页 + 链接,而不是 80 行 Cypher
- 社交网络构建者:使用 indegree()/outdegree() 查询“朋友的朋友”
- 数据工程师:跟踪数据血缘(数据集 → 转换 → 输出)
- 新接触图形的 Python 开发者:避免 Cypher 的学习曲线
<p>数据插入:真正的游戏规则改变者
<p>原始 Cypher 的噩梦:
<pre><code> queries = [
"""CREATE (:User {email: "alice@example.com", name: "Alice O\\'Connor"})""",
"""CREATE (:User {email: "bob@example.com", name: "Bob \\"The Builder\\""})"""
]
for q in queries:
graph.query(q) # 没有事务安全!
</code></pre>
GraphORM 的幸福:
<pre><code> alice = User(email="alice@example.com", name="Alice O'Connor")
bob = User(email="bob@example.com", name='Bob "The Builder"')
graph.add_node(alice)
graph.add_edge(Follows(alice, bob, since=1704067200))
graph.flush() # 一次网络调用,原子事务
</code></pre>
<p>在 30 秒内试用
<p>使用命令:pip install graphorm
<pre><code> from graphorm import Node, Edge, Graph
class User(Node):
__primary_key__ = ["email"]
email: str
name: str
class Follows(Edge):
since: int
graph = Graph("social", host="localhost", port=6379)
graph.create()
alice = User(email="alice@example.com", name="Alice")
bob = User(email="bob@example.com", name="Bob")
graph.add_node(alice)
graph.add_edge(Follows(alice, bob, since=1704067200))
graph.flush()
</code></pre>
GitHub: <a href="https://github.com/hello-tmst/graphorm" rel="nofollow">https://github.com/hello-tmst/graphorm</a>
<p>我们期待诚实的反馈:
- 这是否解决了您真正的痛点?
- 生产使用中缺少什么?
- 有任何 API 设计建议吗?
嗨,HN!我是一名韩国的高三学生,即将进入大学学习计算机科学。
我从零开始用C++构建了一个浏览器引擎,以理解浏览器的工作原理。这是我第一次使用C++,开发历时8周,经历了大量的调试——但它终于可以运行了!
功能:
- 带有错误修正的HTML解析
- CSS级联和继承
- 块级/行内布局引擎
- 异步图像加载和缓存
- 链接导航和历史记录
最难的部分:
- 字符串解析(HTML、CSS)
- 渲染
- 图像缓存和布局重排
我学到的东西(超越代码):
- 系统化调试至关重要
- 与已知的bug一起发布,而不是追求完美
- “为什么?”的力量
大约3000行C++17/Qt6代码。希望能得到关于代码架构和C++最佳实践的反馈!
GitHub: [https://github.com/beginner-jhj/mini_browser](https://github.com/beginner-jhj/mini_browser)