6作者: dirteater_3 个月前原帖
我已经多次使用这种 println 调试方法,以及一些 sed/awk 的技巧来找出导致问题的调用。现在它变成了一个小的 Go 包。 通过一些 `runtime.Callers`,我通常可以通过将现有的 Mutex 或 RWMutex 替换为这个来找到问题所在。 有时我会将以下代码: ```go mu.Lock() defer mu.Unlock() ``` 替换为 LockFunc/RLockFunc,以获取更多细节: ```go defer mu.LockFunc()() ``` 我几乎总是用 `deadlog.New(deadlog.WithTrace(1))` 来初始化它,这已经足够了。 这不是一个最精致的库,但它不打算提交到任何代码中,只是一个临时的调试工具。我觉得它很有用。
2作者: chrisnagel3 个月前原帖
我在地理信息系统(GIS)和制图领域工作了几年,逐渐接触到机器学习和计算机视觉,这让我开始思考我所称之为“广谱”计算机视觉的内容,即超出可见光范围的物体和异常识别。 这是我第一次尝试构建一个工具,以理解其中涉及的物理原理,从阳光的电磁吸收和反射到校正后的传感器观测。我专注于构建和验证现有的光谱指数,以理解基础知识,然后再基于材料的分子特性从第一原理探索我自己的光谱指数。 到目前为止,该工具包括: - 一个大气校正处理器,提供三种方法:经验带比法、Py6S辐射传输法和ISOFIT最优估计法 - 一个交互式查看器,支持辐射和反射数据,包含RGB合成图、23个光谱指数,以及基于感兴趣区域(ROI)的光谱特征提取和参考材料匹配 - 一个学习套件,解释从太阳辐照度到传感器捕获的观测链的每个阶段 到目前为止,我已经在来自圣巴巴拉岛、圣华金谷和内华达州库普赖特的AVIRIS-3数据上进行了测试。 我希望能对这个方向和整体实用性进行一次合理性检查。如果有人在处理高光谱数据方面有经验,并想尝试进行压力测试,安装要求Python 3.9以上,并可选用conda来支持Py6S。
2作者: bigmotion3 个月前原帖
作为一名数据分析学生,处理CSV和Excel表格非常重要。在数据清洗阶段,你会遇到一些可能会中断流程的问题。因此,我创建了一个免费的工具网站和Chrome扩展程序来解决这个问题,欢迎试用!
2作者: Xarovin3 个月前原帖
我在2017年首次制作了MouseTracks的版本。当时引起了很多关注,但我从未具备完成它的技能。大约一年前,我终于开始了2.0的开发,从那时起我一直在乐趣中逐步完善它。 一些关键功能: - 追踪鼠标移动、点击、键盘和控制器输入(您可以选择禁用其中任何一个)。 - 根据加载的游戏/应用程序切换配置文件。 - 在图形用户界面中提供实时渲染预览。 - 设计上能够完美处理多显示器和不同分辨率。 - 较旧的鼠标移动会逐渐淡出,以保持对最新活动的关注。 - 数据可以记录多年,并在任何时候渲染。 它被设计为一种“运行后忘记”的应用程序,您可以选择在启动时后台加载,它会静默地持续记录,直到您准备好渲染(不过默认情况下并不会这样做——如果您不更改任何设置,它只会作为一个普通的便携式应用程序运行)。 它是完全开源的,并且兼容Windows/Linux/macOS。可执行文件由GitHub Actions自动构建,页面上还有关于如何使用Python本地构建或运行的说明。 如有任何问题,请随时询问。我在GitHub页面上有一系列示例渲染,希望能够很好地展示它的功能。
16作者: prasoonds3 个月前原帖
嗨,HN,stripe-no-webhooks 是一个开源库,可以将您的 Stripe 支付数据同步到您自己的 Postgres 数据库: <a href="https://github.com/pretzelai/stripe-no-webhooks" rel="nofollow">https://github.com/pretzelai/stripe-no-webhooks</a>。 这里有一个演示视频:<a href="https://youtu.be/cyEgW7wElcs" rel="nofollow">https://youtu.be/cyEgW7wElcs</a>。 这有什么用呢?(1) 您不必弄清楚需要哪些 webhook 或为每个 webhook 编写监听器。这个库会处理所有这些。这种方法类似于 Django 领域的 dj-stripe 库(<a href="https://dj-stripe.dev/" rel="nofollow">https://dj-stripe.dev/</a>)。(2) Stripe 的 API 有 100 rpm 的速率限制。如果您频繁检查订阅状态或构建内部工具,您会遇到这个问题。而查询您自己的 Postgres 则没有这个问题。(3) 您可以给 AI 代理提供 stripe.* 模式的读取权限,以调试支付问题——失败的收费、退款等——而无需交出 Stripe 仪表板的访问权限。(4) 您可以将 Stripe 数据与您自己的表连接,以进行自定义分析、LTV 计算等。 它在您的 Stripe 账户中创建一个 webhook 端点,将 webhook 转发到您的后端,在那里一个 webhook 监听器将所有数据存储到一个新的 <i>stripe.*</i> 模式中。您在 TypeScript 中定义您的计划,运行同步命令,库会处理创建 Stripe 产品和价格、处理 webhook,以及保持您的数据库同步。我们还允许您为现有账户回填 Stripe 数据。 它支持预付费使用积分、账户钱包和基于使用的计费。它还允许您生成一个可以自定义的定价表组件。您可以使用库提供的简单 API 访问用户信息: <pre><code> billing.subscriptions.get({ userId }); billing.credits.consume({ userId, key: "api_calls", amount: 1 }); billing.usage.record({ userId, key: "ai_model_tokens_input", amount: 4726 }); </code></pre> 实际上,如果您不想,您不必再处理 Stripe 仪表板或 Stripe API/SDK。这个库为您提供了一个很好的抽象,应该覆盖大多数订阅支付用例。 让我们通过一个快速示例来看它是如何工作的。假设您有一个类似于 Cursor(IDE)曾经有的计费计划:每月 20 美元,您可以获得 500 次 API 完成 + 2000 次标签完成,您可以购买额外的 API 积分,任何额外使用将按超额计费。 您在 TypeScript 中定义您的计划: <pre><code> { name: "Pro", description: "Cursor Pro plan", price: [{ amount: 2000, currency: "usd", interval: "month" }], features: { api_completion: { pricePerCredit: 1, // 每个单位 1 美分 trackUsage: true, // 启用使用计费 credits: { allocation: 500 }, displayName: "API Completions", }, tab_completion: { credits: { allocation: 2000 }, displayName: "Tab Completions", }, }, } </code></pre> 然后在 CLI 中,您运行 `init` 命令,它会创建数据库表和一些 API 处理程序。运行 `sync` 将计划同步到您的 Stripe 账户并创建一个 webhook 端点。当创建订阅时,库会自动将 500 次 API 完成积分和 2000 次标签完成积分授予用户。续订和升级/降级会被合理处理。 消费代码看起来像这样: <pre><code> await billing.credits.consume({ userId: user.id, key: "api_completion", amount: 1, }); </code></pre> 如果他们想允许用户手动充值: <pre><code> await billing.credits.topUp({ userId: user.id, key: "api_completion", amount: 500, // 购买 500 积分,收费 5.00 美元 }); </code></pre> 同样,我们还有钱包和使用的 API。 如果您自己在 Stripe 上实现这些功能,将会是非常繁琐的工作。您需要在自己的数据库中跟踪所有这些权利,并处理续订、到期、临时授予等。这当然是可行的,尤其是在 AI 编程的帮助下,但您可能最终会构建出一些脆弱且难以维护的东西。 这只是对该库功能的高层次概述。它还支持座位级积分、货币钱包(具有微分精度)、自动充值、强大的故障恢复、税收收集、发票以及开箱即用的定价表。 我为测试编写了一个小玩具应用:<a href="https://snw-test.vercel.app" rel="nofollow">https://snw-test.vercel.app</a>。没有验证,所以请随意使用虚拟邮箱注册,然后使用测试卡订阅计划:4242 4242 4242 4242,任何未来的到期日期,任何 3 位数的 CVV。 截图:<a href="https://imgur.com/a/demo-screenshot-Rh6Ucqx" rel="nofollow">https://imgur.com/a/demo-screenshot-Rh6Ucqx</a> 欢迎尝试!如果您最终使用了这个库,请在仓库中报告任何错误。如果您遇到问题或想聊天,我很乐意提供帮助——我的联系方式在我的 HN 个人资料中。
5作者: ankit2193 个月前原帖
GitHub: <a href="https://github.com/ClioAI/kw-sdk" rel="nofollow">https://github.com/ClioAI/kw-sdk</a> 大多数人工智能代理框架针对的是代码。编写代码、运行测试、修复错误、重复这个过程。这是可行的,因为代码有一个自然的验证信号:要么有效,要么无效。 这个SDK将知识工作视为一个工程问题: 任务 → 简要说明 → 评分标准(对执行者隐藏) → 工作 → 验证 → 失败? → 重试 → 通过 → 提交 协调者负责协调子代理、网络搜索、代码执行和文件输入/输出,然后根据无法操控的标准检查自己的工作(评分标准是在单独的调用中生成的,执行者从未直接看到它)。 我们最初将其构建为一个用于知识任务的强化学习训练工具。评分标准就是奖励函数。如果你在知识工作上训练模型,简要说明→评分标准→执行→验证的循环为通常没有奖励信号的任务提供了一个结构化的奖励信号。 知识工作与代码有什么不同?(除了反馈循环) 我认为目前的代理在处理知识工作时缺少一些功能。我尝试在这个版本中包含这些功能。例如: 探索模式:映射解决方案空间,识别集合级别的差距,并提供选项。 大多数代理优化单一答案,最终得到一个中位数答案。对于战略、设计和创意问题,你希望看到选项、权衡和可以采取的行动。探索模式生成N种不同的方法,每种方法都有明确的假设和反事实(“如果X有效,如果Y失效”)。输出以集合级别的差距结束,即整个集合遗漏的角度。这些差距往往比具体的观点更有价值。我认为这是我们许多人每天都在做的事情,但目前没有代理能够直接捕捉到这一点。请参见<a href="https://github.com/ClioAI/kw-sdk/blob/main/examples/explore_mode.py" rel="nofollow">https://github.com/ClioAI/kw-sdk/blob/main/examples/explore_mode.py</a>及其输出,以了解这与众不同之处。 检查点:对于许多AI代理,尤其是多代理系统,我可以看到哪里出了问题,但无法从同一阶段运行推理。(或者你可能希望在代理完成一些任务(如搜索)并开始考虑想法后进行多次探索。)我在回滚时经常使用这个功能,并认为这是一个很好的特性,可以再次运行或从特定检查点分叉。 关于验证循环的说明: 验证步骤是实际杠杆所在。一个能够准确评估自己工作与评分标准的模型,比一个仅能生成稍微更好初稿的模型更有价值。评分标准使质量变得清晰——对代理、对人类,甚至可能对训练信号。 我喜欢这个SDK的一些特点: - 你可以传递一个远程执行环境(包括将浏览器作为沙箱),它都能正常工作。可以是Docker、e2b、你的本地环境,任何东西,模型将在你的上下文中执行命令,并根据反馈循环进行迭代。代码执行在这里是一种协议。 - 工具调用:我意识到你不需要复杂的函数。模型擅长编写终端代码,并可以根据反馈进行迭代,因此你可以直接传递上下文中的函数,模型将执行,或者你可以传递文档,模型将编写代码。(与Anthropic的程序化工具调用相同。)详细信息请见:<a href="https://github.com/ClioAI/kw-sdk/blob/main/TOOL_CALLING_GUIDE.md" rel="nofollow">https://github.com/ClioAI/kw-sdk/blob/main/TOOL_CALLING_GUIDE.md</a> 最后,一些指南: - SDK指南:<a href="https://github.com/ClioAI/kw-sdk/blob/main/SDK_GUIDE.md" rel="nofollow">https://github.com/ClioAI/kw-sdk/blob/main/SDK_GUIDE.md</a> - 可扩展性。请参见我添加新模式的奇异示例:<a href="https://github.com/ClioAI/kw-sdk/blob/main/examples/custom_mode_bizarro.py" rel="nofollow">https://github.com/ClioAI/kw-sdk/blob/main/examples/custom_mode_bizarro.py</a> - 处理文件:<a href="https://github.com/ClioAI/kw-sdk/blob/main/examples/with_files.py" rel="nofollow">https://github.com/ClioAI/kw-sdk/blob/main/examples/with_files.py</a> - 这是简单的,但我喜欢CSV示例:<a href="https://github.com/ClioAI/kw-sdk/blob/main/examples/csv_research_and_calc.py" rel="nofollow">https://github.com/ClioAI/kw-sdk/blob/main/examples/csv_research_and_calc.py</a> - 远程执行:<a href="https://github.com/ClioAI/kw-sdk/blob/main/examples/with_custom_executor.py" rel="nofollow">https://github.com/ClioAI/kw-sdk/blob/main/examples/with_custom_executor.py</a> 还有很多其他内容。这个项目经过了Opus的完全重构,考虑到重新设计,发布可能花费了很多时间。 MIT许可证。期待你的反馈。
8作者: georgeck3 个月前原帖
HN(Hacker News)以丰富的讨论为核心。我们希望将HN的体验提升到一个新的层次——引入熟悉的键盘优先导航,发掘线程中的有趣观点,并快速了解长线程的要点,以便我们决定探索哪些话题。因此,我们在一年前构建了HN Companion,并一直在不断完善它。 试试这个:<a href="https://app.hncompanion.com" rel="nofollow">https://app.hncompanion.com</a>,或者作为Firefox/Chrome的扩展程序使用:[0]。 大多数AI摘要通过将讨论线程压缩成一大段文本,剥夺了对话中的声音。这使得阅读HN讨论的乐趣消失。相反,HN Companion的工作方式不同——它理解线程的层级结构、投票模式和对立观点——这一切都使HN变得有趣。可以把它想象成将多个层级中相关的讨论聚集成一个组,并呈现代表每个组的评论。它保留了逐字文本和反向链接,这样你就不会失去上下文,并可以从那个点继续对话。以下是摘要功能的工作原理[1]。 我们最初将其构建为一个开源浏览器扩展。但很快我们发现人们对安装它有所顾虑。因此,我们将相同的体验构建为一个网页应用,具备所有功能。这帮助人们了解它的工作原理,并可以在移动设备上使用(在浏览器中或作为渐进式Web应用)。这现在成为了一个在将新功能带入浏览器扩展之前进行尝试的游乐场。 一年前我们做了一个Show HN[2],并根据用户反馈添加了以下功能: * 缓存摘要——摘要在我们的服务器上生成并缓存。这显著提高了速度。你仍然可以选择使用自己的API密钥或通过Ollama使用本地模型。 * 我们的系统提示在扩展的设置页面中可用。你可以根据自己的需求进行自定义。 * 根据积分、评论、时间或默认排序顺序对首页(/home、/show等)的帖子进行排序。 * 我们尝试对一个开放权重模型进行微调以进行摘要,但发现只要有良好的系统提示和用户提示,前沿模型也能提供类似质量的结果。因此我们没有使用微调模型,但你可以在本地运行它们。 浏览器扩展不会跟踪任何使用情况或分析。代码是开源的[3]。 我们希望继续改进HN Companion,特别是添加诸如关注作者、关于作者的笔记、草稿帖子等功能。 在这里查看某个帖子的实际效果 <a href="https://app.hncompanion.com/item?id=46937696" rel="nofollow">https://app.hncompanion.com/item?id=46937696</a>。 我们非常希望听到你的反馈,了解如何使这个工具对你的HN阅读更加有用。 [0] <a href="https://hncompanion.com/#download" rel="nofollow">https://hncompanion.com/#download</a> [1] <a href="https://hncompanion.com/how-it-works" rel="nofollow">https://hncompanion.com/how-it-works</a> [2] <a href="https://news.ycombinator.com/item?id=42532374">https://news.ycombinator.com/item?id=42532374</a> [3] <a href="https://github.com/hncompanion/browser-extension" rel="nofollow">https://github.com/hncompanion/browser-extension</a>