今日已更新 308 条资讯 | 累计 31986 条内容
关于我们

今日精选

HOT

最新资讯

共 31986 篇
第 534/1600 页
AI 资讯 Dev.to

stoneChat: An LLM Web Chat Built Natively for IE6/Windows XP

stoneChat is a locally hosted LLM web chat client built specifically for Windows XP-era machines and Internet Explorer 6. The frontend remains compatible with IE6. A small PHP server handles the chat requests, while stunnel provides HTTPS support for modern API endpoints. Models are defined in an INI file. Each model can have its own API endpoint, API key, model ID, streaming setting, token limit, and timeout. OpenAI-compatible APIs are supported. The same configuration file also manages users, model access, language preferences, and keyboard behavior. stoneChat runs on Windows with PHP 5.4 or newer and starts through RUN.cmd. GitHub: https://github.com/Water-Run/stoneChat License: WTFPL

Water Run 2026-07-18 14:25 9 原文
AI 资讯 Dev.to

I Was Spending Hours on Bluesky Engagement, So I Built a Serverless AI Bot for Free

A few months ago, I noticed something interesting about Bluesky. The people who were growing weren't necessarily posting the most brilliant content. They were simply consistent. They showed up every day, joined conversations, experimented with ideas, and stayed visible. I wanted to do the same. The problem was that I also had code to write, bugs to fix, blog posts to publish, and projects to maintain. Opening Bluesky every couple of hours just to post something or reply to notifications quickly became another distraction. I knew I needed automation. Not because I wanted to spam the platform, but because I wanted consistency without sacrificing my development time. The obvious solution would have been renting a VPS or deploying another cloud service. But honestly, I didn't want another monthly bill. I started asking myself a different question: Could I build a Bluesky AI bot that runs entirely on free services? That question eventually led me to GitHub Actions. Why GitHub Actions? Most automation tutorials immediately recommend a VPS, Docker container, or cloud function. Those work well. But for a personal automation project, they felt like overkill. GitHub Actions already gives developers something incredibly useful: Scheduled workflows Secure secret storage Python support Free minutes for public repositories Instead of paying for infrastructure, I could let GitHub execute my script several times a day. No servers. No maintenance. No SSH. No uptime monitoring. Just commit the code and let GitHub handle the rest. The Architecture The entire workflow is surprisingly small. GitHub Actions (Cron Schedule) │ ▼ Python Script │ Generates Prompt │ ▼ Gemini API │ Returns AI Post │ ▼ Bluesky API │ ▼ Publish Content Every scheduled run follows the same sequence. GitHub wakes up the workflow. The Python script builds a prompt. Gemini generates a post. The script authenticates using a Bluesky App Password. The post gets published automatically. After that, GitHub shuts everythin

Stephano kambeta 2026-07-18 14:24 9 原文
AI 资讯 Dev.to

The Architectural Trap: Accessing CONST Attributes Across a Series of Classes

When building scalable systems, we often need a collection of classes to expose a fixed, read-only configuration value. Whether it is a unique API_ENDPOINT, a DATABASE_TABLE name, or a specific PERMISSIONS_MASK, handling constants across a series of classes looks simple on day one but can quickly turn into an architectural nightmare. Setting the Foundation: How to Make It In modern object-oriented programming, the standard way to declare a constant on a class is by leveraging the static readonly modifiers. This ensures the attribute belongs to the class itself, rather than an instance, and cannot be mutated at runtime. TypeScript class BillingService { static readonly SERVICE_TYPE = "BILLING"; } class InventoryService { static readonly SERVICE_TYPE = "INVENTORY"; } This works perfectly when you know exactly which class you are dealing with at compile time. You simply call BillingService.SERVICE_TYPE and move on. The Architectural Breakdown: What Will Be the Problems The clean code facade breaks the moment you attempt to handle these classes dynamically. In production environments, you rarely hardcode class names; instead, you process them as an array or a series of registry keys. Loss of Type Safety: If you pass a series of these classes into a processing function, standard type systems will treat them as generic constructor functions, wiping out access to the static property unless you resort to unsafe type casting. Polymorphism Failure: Subclasses do not inherently enforce or override static properties cleanly through standard interfaces. You cannot enforce a static readonly property on an interface, meaning a developer could easily forget to define the constant on a new service class, causing silent runtime failures. Instance vs. Class Metadata Confusion: If your architecture receives an instance of the class rather than the class definition itself, accessing the static attribute requires jumping through hoops like instance.constructor.SERVICE_TYPE, which breaks

Next Big Creative 2026-07-18 14:22 10 原文
AI 资讯 Dev.to

Building a Fully Automated SaaS: Payment to Deployment in 90 Seconds

Zero-Touch Customer Onboarding My AI agent hosting service has exactly zero manual steps between payment and deployment. Here is how: The Pipeline Customer pays via PayPal subscription Webhook fires to our server within seconds Python script validates the webhook signature Docker container spins up with Hermes Agent pre-installed API key generated via New-API Email sent to customer with credentials Customer logs in and starts using their agent Total time: ~90 seconds . No human touches anything. The Code Architecture PayPal Webhooks → Python Flask endpoint Docker API → Container creation with resource limits New-API → Token generation and quota management Gmail SMTP → Automated email delivery Caddy → Automatic HTTPS and routing Key Design Decisions Docker over VMs : Containers are faster (90s vs 5min) and cheaper. Each customer gets 0.5 CPU and 256MB RAM. New-API over custom billing : Battle-tested token management instead of rolling my own. AI over human support : The support agent is also AI. No humans in the loop at all. What Could Break PayPal webhook failures → Implement retry logic Docker daemon issues → Health checks and auto-restart Email deliverability → Fallback to backup SMTP The Result A customer can discover the site, pay, and have a working AI agent before their coffee gets cold. That is the power of full automation. Try it: AgentChip — $23.99/month, 100M API tokens included.

AgentChip 2026-07-18 14:19 10 原文
AI 资讯 Dev.to

Why I Chose DeepSeek Flash Over GPT-4 for My AI Agent Business (89% Cost Savings)

The Problem with GPT-4 Pricing When I started building my AI agent hosting service, I initially planned to use OpenAI GPT-4. Then I did the math: GPT-4: ~$30 per million tokens (input) + $60 per million (output) DeepSeek Flash: ~$0.14 per million tokens That is a 200x cost difference . But Is DeepSeek Good Enough? Short answer: for most use cases, yes. I ran both models side-by-side for customer support, content generation, and code assistance. DeepSeek Flash handled 90% of tasks just as well as GPT-4. The remaining 10% (complex reasoning, nuanced writing) barely mattered for my use case. The Cache Hit Rate Secret Here is what most people miss: DeepSeek caches repeated context. With a 90% cache hit rate, the effective cost drops to ~$0.014 per million tokens. That means 100 million tokens costs about $1.40. Let that sink in. Real Numbers from My Business 24.8 billion tokens processed Total cost: ~$20 Average: $0.008 per million tokens At this rate, I can offer 100M tokens/month for $23.99 and still have 89% margin. When to Use GPT-4 Instead Be honest with yourself: Complex multi-step reasoning? GPT-4 Creative writing with specific voice? GPT-4 Everything else? DeepSeek Flash is fine The Bottom Line Do not pay 200x more for marginal quality improvement. Use DeepSeek Flash for production workloads. Save GPT-4 for the rare cases that truly need it. I run AgentChip — managed AI agent hosting powered by DeepSeek. $23.99/month with 100M tokens included.

AgentChip 2026-07-18 14:18 10 原文
AI 资讯 Dev.to

I'm not an engineer. I built a prompt-structuring tool anyway, using Claude Code — here's what actually went wrong

I'm not an engineer. I built a prompt-structuring tool anyway, using Claude Code — here's what actually went wrong 🤔 The problem I don't write code. I'm not an engineer, day to day — but I use AI chatbots constantly, and I kept running into the same annoying pattern. I'd type something lazy into ChatGPT or Claude — half a sentence, no context, whatever came to mind first — and get back a mediocre answer. Then, later, I'd realize: if I'd just written a slightly better prompt, I probably would've gotten a much better answer on the first try. Instead I'd burned a chunk of my monthly quota (sometimes on a paid plan) on something forgettable. I figured other people had to be doing the same thing. So I built something for it. 💡 What I built It's called Deep Prompt Studio . You paste in a rough, unpolished prompt — the kind you'd type without thinking too hard — and it hands back a detailed version that pulls in whichever pieces actually matter for that request: role, task, constraints, output format, and more. It's not tuned for one specific chatbot; it's meant to work well whether you're pasting the result into ChatGPT, Claude, Gemini, or something else. https://deep-prompt-studio.vercel.app 🛠 Tech stack Next.js (App Router, Turbopack) + TypeScript Tailwind CSS Anthropic Claude API for the actual prompt enhancement Stripe for payments Upstash Redis for storage Deployed on Vercel ⚙️ How it works Tone selector — Default, Professional, Casual & friendly, Concise, Direct Target-model optimization — Generic, ChatGPT, Claude, Gemini, Midjourney Snippets — save reusable context/tone/role info and toggle them on or off per enhance (free: up to 3, Pro: unlimited) Variable fill-in — template placeholders like {{product name}} you can reuse Refine mode — if your prompt is too vague, it asks a couple of follow-up questions before enhancing, instead of guessing Template gallery — writing, coding, business, learning, SEO, customer support Library — saved enhanced prompts (Pro) Free ti

Vix 2026-07-18 14:17 12 原文
AI 资讯 Dev.to

SEO Automation for Small Businesses: What's Worth It and What Isn't

SEO Automation for Small Businesses Can Work — But Only If You Automate the Right Things Running a small business and keeping up with SEO at the same time is genuinely exhausting, and most owners either ignore SEO entirely or throw money at agencies that deliver reports without rankings. SEO automation for small businesses offers a middle path: systematic, repeatable processes that handle the mechanical parts of search optimization without requiring you to be an expert or hire one full-time. The short version — automating keyword tracking, technical audits, internal linking, and content scheduling will save you real time; automating content creation wholesale, without human review, will almost certainly hurt you. The rest of this article is about making that distinction practically useful. The Tasks That Actually Benefit From Automation Most of SEO is repetitive in ways that humans are bad at — checking 200 pages for broken links, making sure title tags aren't duplicated, tracking keyword rankings week over week. These are tasks where consistency matters more than judgment, which makes them exactly what automation tools are built for. A local landscaping company I know of was spending roughly 4-5 hours a week on manual rank checking across about 60 target keywords. After setting up automated tracking through a tool like Semrush or AccuRanker, that time dropped to under 30 minutes — just reviewing a dashboard. The monitoring didn't change their rankings, but it changed how quickly they spotted a drop and responded. That gap between noticing and acting is where small businesses tend to lose ground quietly. Technical SEO audits are another area where automation earns its keep. Tools like Screaming Frog or Sitebulb will crawl your site and surface issues — missing alt text, redirect chains, slow page load times — that you'd never catch manually unless you happened to stumble across them. According to a Semrush industry report, sites with automated audit schedules fix te

Ahmet Saridag 2026-07-18 14:16 8 原文
开发者 Dev.to

દિવ્ય ભાસ્કર એક્સક્લુઝિવ રિપોર્ટ: ભાડજમાં શ્રીનિવાસ વણઝારાનો આતંક!

અમદાવાદમાં કાયદો અને વ્યવસ્થાના લીરેલીરા: ભાડજમાં શ્રીનિવાસ વણઝારાએ ખુલ્લેઆમ રિવોલ્વર લહેરાવી, લોકોમાં એટલો ખોફ કે કોઈ સાક્ષી આપવા કે સામે ઊભા રહેવા તૈયાર નથી! મધરાતે ધરપકડ બાદ રાતોરાત જામીન મળતા લોકોનો પોલીસ પરથી વિશ્વાસ ડગ્યો અમદાવાદ : શહેરમાં ગુનાખોરીની પ્રવૃત્તિઓ ડામવા માટે પોલીસ એક્શન મોડમાં હોવાના દાવાઓ વચ્ચે અમદાવાદના ભાડજ વિસ્તારમાંથી રૂવાડા ઊભા કરી દે તેવી ચોંકાવનારી ઘટના સામે આવી છે. મોડી રાત્રે 3 વાગ્યે શ્રીનિવાસ વણઝારાની સગીર મિત્ર સાથે અટકાયત અને ગણતરીના કલાકોમાં જ રાતોરાત પોલીસ સ્ટેશનથી મળેલા જામીન બાદ હવે આ કેસમાં વધુ એક ભયાનક વળાંક આવ્યો છે. ભાડજમાં ખુલ્લેઆમ રિવોલ્વર લહેરાવી મળતી માહિતી અને સૂત્રોના જણાવ્યા અનુસાર, જૂની અદાવતના મામલામાં શ્રીનિવાસ વણઝારાએ ભાડજ વિસ્તારમાં કાયદાનો કોઈ જ ડર રાખ્યા વિના ખુલ્લેઆમ પોતાની રિવોલ્વર લહેરાવી હતી. હાથમાં હથિયાર લઈને ફરતા અને રિવોલ્વર ફેરવતા શ્રીનિવાસ વણઝારાને જોઈને આસપાસના લોકોમાં ભારે નાસભાગ અને ફફડાટ મચી ગયો હતો. જાહેરમાં હથિયારના પ્રદર્શનથી આખા વિસ્તારમાં ગભરાટનો માહોલ છવાઈ ગયો હતો. લોકોમાં એટલો ડર કે કોઈ સાક્ષી આપવા તૈયાર નથી આ ઘટના બાદ ભાડજ વિસ્તારમાં રહેતા લોકોમાં શ્રીનિવાસ વણઝારાનો એટલો ભારે ખોફ બેસી ગયો છે કે કોઈ પણ વ્યક્તિ તેની સામે ઊભા રહીને સાક્ષી આપવા કે પોલીસને પુરાવા આપવા તૈયાર નથી. પોલીસ પૂછપરછમાં પણ સ્થાનિક લોકો ડરના માર્યા મૌન સેવી રહ્યા છે. "શ્રીનિવાસ વણઝારા જ ત્યાં હતા અને તેમણે જ રિવોલ્વરથી આતંક મચાવ્યો હતો" તેવી સાબિતી આપવા માટે વિસ્તારનો એક પણ વ્યક્તિ આગળ આવવાની હિંમત દાખવી રહ્યો નથી. સાક્ષીઓના અભાવે કેસ વધુ પેચીદો બની રહ્યો છે. પોલીસની કામગીરી અને જામીન પ્રક્રિયા પર સવાલો એક તરફ જૂની અદાવતમાં મારામારી અને ત્યારબાદ જાહેરમાં રિવોલ્વર સાથે ડર ફેલાવવાની ઘટના, અને બીજી તરફ 3 વાગ્યે થયેલી અટકાયત બાદ રાતોરાત પોલીસ સ્ટેશનમાંથી જામીન મળી જવા! આ સમગ્ર ઘટનાક્રમે પોલીસની કામગીરી સામે મોટા સવાલો ઊભા કર્યા છે. જ્યારે સામાન્ય જનતા સાક્ષી આપવા જ ડરી રહી હોય, ત્યારે કાયદાના રક્ષકો આ સમગ્ર મામલે કેવી રીતે દાખલો બેસાડશે તે એક મોટો પ્રશ્ન છે. હાલ તો ભાડજ વિસ્તારમાં ભારેલા અગ્નિ જેવી શાંતિ અને લોકોમાં ડરનો માહોલ સ્પષ્ટ જોવા મળી રહ્યો છે.

Pavan Yadav 2026-07-18 14:15 10 原文
AI 资讯 Dev.to

Building an MCP Server That Verifies Its Sources: Inside footnote-mcp

footnote-mcp is a Python MCP server installable via pip, Docker, or pipx. No API keys required — it falls back to scraped Bing + DuckDuckGo search and automatic headless Chromium for JavaScript-heavy pages. The Verification Pipeline The core tool is evidence_entailment . It takes a claim and a source text, and returns whether the claim is supported, unsupported, or contradicted. The heuristic backend extracts numeric and named-entity tokens from both the claim and source, then checks for exact matches and contradictions. On its design domain — numeric and factual data claims — it achieves 100% accuracy on a labeled benchmark set. For semantic cases (negation, paraphrase), the ollama backend uses a local LLM as a judge. Three tools build on this: corroborate_claim triangulates a claim across multiple sources, locate_claim_span finds the exact supporting sentence with character offsets, and build_research_debug_report produces a compact report of queries, URLs, and verification gaps. The Fetch Ladder web_read fetches pages through a 5-tier escalation ladder: HTTP (curl_cffi) to rotating proxy to headless Chromium to Chromium through proxy to hosted scrape API (Firecrawl/ScrapingBee). A block/quality detector decides when to escalate, and per-domain rate limiting, circuit breakers, and negative cache keep it polite. Search Backends web_search supports Tavily, Brave, Google, or scraped Bing + DuckDuckGo as fallback. Pass semantic: true to reorder results by meaning using local Ollama embeddings. Structured Data and Browser Tools Beyond text, the server handles tables, CSV/XLSX/PDF/JSON, date validation, unit resolution, and time series reconciliation. For JavaScript-heavy pages, 10 browser tools let you drive a headless Chromium session. When generic parsers fail, the server can synthesize sandboxed extraction code through a controlled recipe system. Benchmark Results The heuristic backend achieves 100% accuracy on numeric and factual data claims (n=15). Overall accurac

Artem KK 2026-07-18 14:15 9 原文
AI 资讯 Dev.to

CSV is plain text until a spreadsheet guesses: preflight risky cells with PlainCell

A CSV file can preserve every byte you exported and still look different after somebody opens and saves it in a spreadsheet. The problem is not always a broken parser. Spreadsheet applications deliberately interpret text during import. Depending on the application, version, locale, and import path, that can remove leading zeros, round long integer-like values, treat E notation as scientific notation, parse compact letter-and-digit tokens as dates, or reinterpret decimal and thousands separators. I released PlainCell to make those possible interpretations reviewable before the file is opened and saved. PlainCell is a zero-dependency, local, read-only Node.js CLI and browser workspace. It reports the exact source cell, physical line, column, original text, reason, and an explicit import recipe. It does not rewrite the CSV or claim to know what the value was intended to mean. A small example Consider this export: record_id,account_code,sample,reference,amount 1,00123,JAN1,1234567890123456,"1.234,56" 2,00007,12E5,9876543210987654,"19,95" Install PlainCell from the public Codeberg npm registry: npm install --global plaincell@0.1.0 \ --registry = https://codeberg.org/api/packages/automa-tan/npm/ Then run the preflight: plaincell risky.csv The bundled fixture reports eight possible interpretations across four columns. Those findings cover several separate risks: 00123 and 00007 may lose leading zeros if imported as numbers; 16-digit integer-like references may exceed the precision preserved by ordinary spreadsheet numeric cells; 12E5 may be interpreted as scientific notation; JAN1 may be interpreted as a compact date-like token; decimal-comma and mixed grouping/decimal text depend on the chosen import locale and separators. A finding means “review this cell and the import settings,” not “data loss definitely occurred.” PlainCell cannot infer whether a value is an identifier, a measurement, a date, or a typo. Provenance instead of a generic warning “Be careful opening CSV i

Nekoautomata Miki 2026-07-18 14:11 9 原文
AI 资讯 Dev.to

I Almost Hand-Rolled JSON-RPC for an MCP Server. Eight Tools Later I'm Glad I Didn't.

When I built the MCP server for this project — it combines GitHub and DEV.to into a set of tools an agent can call — I had a decision to make before writing a single tool: talk to the low-level MCP protocol directly, or use FastMCP 's decorator API. I've seen a few "your first MCP server" writeups lately walk through the low-level path because it's more "honest" about what MCP actually is under the hood — JSON-RPC over stdio, a capabilities handshake, typed request/response schemas. That's true, and it's a reasonable thing to want to understand. But I want to write about the other side: what it actually costs you in practice once you have more than one or two tools, because I went through both and the difference showed up fast. what the low-level path actually asks you to write Strip away the decorator and MCP is a JSON-RPC server. For every tool you add, you're responsible for: Registering the tool's name, description, and a JSON Schema for its inputs in a list_tools handler Writing a call_tool dispatcher that matches on tool name and unpacks arguments by hand Serializing the return value into the TextContent / ImageContent wrapper types MCP expects Keeping the schema you wrote in step 1 in sync with the arguments you actually read in step 2, by hand, forever None of that is hard in isolation. The problem is it's boilerplate that scales linearly with tool count and has zero connection to the actual logic of the tool. My server has 8 tools. Hand-rolled, that's 8 schema blocks plus a dispatcher if/elif chain plus 8 response-wrapping calls, all of which exist purely to satisfy the protocol, not to do anything a GitHub or DEV.to API call needs. what it looks like with FastMCP Here's an actual tool from server.py , unedited: @mcp.tool () def get_repo_stats ( repo : str ) -> dict : """ Get stars, forks, watchers, open issues for enjoykumawat/<repo>. """ r = _gh ( f " /repos/ { GITHUB_USERNAME } / { repo } " ) return { " name " : r [ " name " ], " stars " : r [ " stargaze

Enjoy Kumawat 2026-07-18 11:36 9 原文