タグ

JSONに関するdhesusan4649のブックマーク (184)

  • Streaming JSON in just 200 lines of JavaScript

    I was continueing my exploration of React server components when I stumbled upon on this article about progressive JSON. Dan Abramov describes a technique for streaming JSON from a server to a client in chunks, allowing the client to start rendering parts of the data before the entire payload has been received. This can significantly improve perceived performance, especially for large datasets. So

    Streaming JSON in just 200 lines of JavaScript
  • Progressive JSON — overreacted

    Do you know about Progressive JPEGs? Here’s a nice explanation of what a Progressive JPEG is. The idea is that instead of loading the image top to bottom, the image instead is fuzzy at first and then progressively becomes more crisp. What if we apply the same idea to transferring JSON? Suppose you have a JSON tree with some data: { header: 'Welcome to my blog', post: { content: 'This is my article

    Progressive JSON — overreacted
  • MCP入門

    記事は、最近話題のMCPの入門記事です。 MCP(Model Context Protocol)について、以下の4ステップで紹介します。 ざっくり理解する 使ってみる 深く理解する 作ってみる 初心者でも順番に読み進めれば、MCPについてざっと理解、かんたんな実装ができるようになることを目指します💪 ざっくり理解する MCPとは、ざっくり言うと、LLMアプリと外部サービスを連携するための統一されたインターフェース(プロトコル)です。 LLMアプリとは、ChatGPTやClaude、Cursorなど、LLMを使用するためアプリケーションを指します。(⚠️ GPT-4oやclaude-3-5-sonnetなどのLLM自体とは区別してください。) 初期のLLMアプリは、どこまでいってもすごく賢いチャットツールでしかなく、結局はテキストを返答することしかできませんでした。 そのため、LLMアプ

    MCP入門
  • LLMにJSONやソースコードを出力させるStructured Generationの技術 - NTT docomo Business Engineers' Blog

    こんにちは、イノベーションセンターの加藤です。この記事では、大規模言語モデル(LLM)にJSONやソースコードを正しく出力させるための生成手法であるStructured Generationについて紹介します。 Structured Generationとは パーサーを用いた制約手法 正則言語とは 正則言語のStructured Generation 文脈自由言語とは 字句解析について 正則言語+文脈自由言語のStructured Generation まとめ Structured Generationとは 大規模言語モデル(LLM)はよくチャットボットとしての活用が目立ちますが、LLMの入出力を外部のプログラムに繋ぎ込むことでより高度な自然言語処理システムを作ることができます。 例えばOpenAIのCode Interpreter1はLLMをPythonの実行環境と接続することで、ユーザ

    LLMにJSONやソースコードを出力させるStructured Generationの技術 - NTT docomo Business Engineers' Blog
  • JSONとYAMLどっちがいい?APIフォーマット選びで悩んでいる開発者必見! - Qiita

    「全部YAMLに書き直せ」と言われた月曜日の朝... 先日、上司から「全APIドキュメントをJSONからYAMLに書き換えて」と突然言われた時のことを思い出します。その瞬間の私の顔は...😱 「マジか...何百ものAPIを全部書き直すのか...また週末出勤確定じゃん...」 でも意外なことに、この作業は思ったほど大変ではなく、むしろYAMLの良さを発見するきっかけになったんです!今日は、JSONとYAMLの 決定的な違い と、 簡単に楽しく 変換する方法をシェアしたいと思います! JSON vs YAML:フォーマット対決! 変換方法の前に、まずこの2つのフォーマットの違いを見てみましょう。「案ずるより産むが易し」というように、実際に理解すれば怖くありません! 1. 構造表現:中括弧 VS インデント JSONとYAMLはデータ構造の表現方法が全く違います。JSONは真面目なサラリーマン

    JSONとYAMLどっちがいい?APIフォーマット選びで悩んでいる開発者必見! - Qiita
  • 2025年版 DynamoDBを本格的に使いたい開発者のためのDynamoDB利用ガイド - KAKEHASHI Tech Blog

    DynamoDBも当初はマネージドとしてシンプルでしたが要求が増えるにつえ複雑になってきました。 *ソフトウェアでは良くあることで、そして新しくシンプルなものが生まれ新しいサイクルが始まる モデリングなどはドキュメントを見ていただきつつ、この記事では間違えやすい抑えていただきたいポイントを解説します on-demandモードを使う 初期設定はprovisionedモードになりがちですが固定料金を取られます。また、トラフィックが読めないとき、増減激しいときもあるでしょう on-demandモードが無難です(2024/11/1から半額になりなおさら) CDKの場合、dynamodb tableV2を使うと初期設定でon-demandです provisionedになっているテーブルを探すならAWS Configを使えばアカウント横断で検索できます provisionedは上級者向け。地味に難しい

    2025年版 DynamoDBを本格的に使いたい開発者のためのDynamoDB利用ガイド - KAKEHASHI Tech Blog
  • Ollama で structured outputs (構造化出力)を試す|ぬこぬこ

    tl;drJSON Schema で指定したフォーマットで出力を制御可能になったよ cURL / Python / JavaScript のそれぞれで試してみたよ 具体的な実用例があったのでそれも動かしてみたよ 使う上での tips や今後どんな機能が追加されるかまとめたよ 公開されたブログの流れに準拠しつつ、意図がズレない範囲で翻訳、解説、コードの実行をしていきます。チュートリアルになっているので、よかったら手を動かして試してみてください。 Ollama が structured outputs をサポート。JSON Schema で定義したフォーマットに LLM の出力を制御するすることが可能になりました。Ollama の PythonJavaScript のそれぞれのライブラリにおいてもサポートするよう更新。 ブログでは structured outputs のユースケースとし

    Ollama で structured outputs (構造化出力)を試す|ぬこぬこ
  • わんぱくな JSON ストリームパーサーを見る日 - ぽ靴な缶

    この記事は はてなエンジニアアドベントカレンダー 2024 5 日目の記事です。 昨日は id:susisu さんの Data types à la carte in TypeScript でした。 人が「アクセス増えたと思ったら別の記事で、全然読まれてない...」と言っていたので「いきなりフランス語で難しそうやからね」と伝えました。文は日語なので、みなさんも読んで下さい。 今日は最近見て面白かったコードの紹介です。 ChatGPT が流行って以来、アプリでストリームのレスポンスをよく見るようになりました。 LLM によるテキスト生成はわりと時間がかかる処理で、もしすべて生成し終えてからレスポンスするとユーザーを待たせてしまうからでしょう。テキストがちょっとずつ表示される UI は昔からあるものですが、LLM を使ったアプリケーションが出てきて以来、演出としてではなく実用としてよく見

    わんぱくな JSON ストリームパーサーを見る日 - ぽ靴な缶
  • ドキュメントをMarkdownやJSONに変換してくれる「Docling」を試す

    ここで知った。 試しに、神戸市が公開している観光に関する統計・調査資料のうち、「令和5年度 神戸市観光動向調査結果について」のPDFで一度試していたのだけども: (出典) 神戸市Webサイトの「観光に関する統計・調査」のページ 上記にある「令和5年度 神戸市観光動向調査結果について」のPDF語でも、概ね問題なく、表などもきれいにパースされる ただし、表が画像 になってる場合に、うまく解釈されない(表は解釈されるが、中の文字が化ける) OCRが正しくできていない可能性 というのがあって、ドキュメント読んだけどわからなくて、それ以上深追いしてなかった。 ただ、X界隈を見る限りは評判は良さそうで、いろいろ記事も出てきたみたいなので、改めて試してみる。 GitHubレポジトリ ドキュメント Docling Doclingは、ドキュメントを解析し、簡単かつ迅速に希望の形式にエクスポートします。

    ドキュメントをMarkdownやJSONに変換してくれる「Docling」を試す
  • 【PostgreSQL】いかにして JSONB を安全に扱うか

    はじめに Postgres には JSON/JSONB というデータ型がありますが,JSONB はデータをバイナリ形式で格納するためインサート時に変換のオーバーヘッドがあるものの,その後の処理が非常に高速である上に,インデックスを貼ることができるため,実用上は JSONB を使うのが一般的です. 一方で,そもそも RDB のようなスキーマの厳格な型付けをしているシステムで半構造化データである JSON を扱うこと自体がアンチパターンであるという指摘もあります. しかしながら,適切に設計,運用することで厳格な RDB で柔軟なデータを扱うことができ,アプリケーションの表現の幅を広げることができます. 記事では,JSONB を可能な限り安全に扱うための実践的な工夫を紹介します. JSON Schema を使ったバリデーションを Check Constraint にする Postgres では

    【PostgreSQL】いかにして JSONB を安全に扱うか
  • DuckDB で JSON Lines 形式のログを精査する

    まとめ 圧縮された複数の JSON Lines を読み込める S3 から直接読み込める 好きなタイミングで Parquet で出力 DuckDB とは こちらをどうぞ。 DuckDB雑紹介(1.1対応版)@DuckDB座談会 - Speaker Deck 圧縮済みのログを読み込む 解析対象のログファイルって spam-20240501.jsonl.gz や egg-20240601.jsonl.zst みたいに圧縮されていたりします。 特に日付単位で分かれてたりすることは多いです。そこから目的のログを探し出すのは、基はスクリプトを書くことが多いと思います。 DuckDB を使えば色々解決します。

    DuckDB で JSON Lines 形式のログを精査する
  • JSON Parsing from Scratch in Haskell

    JSON is probably the most used standard file format for storing and transmitting data on the Internet in recent times. Though it was historically derived from JavaScript, it is a programming language independent format and is now supported by almost all languages. JSON has a simple syntax specification with only four scalar data types and two composite data types. So, writing a parser for JSON is

    JSON Parsing from Scratch in Haskell
  • OpenAIのプロンプト自動作成機能を触ってみる - Qiita

    OpenAI DevDay 2024でいくつかの新しい機能が実装されています。 新機能のひとつに、プロンプト自動作成というものがあります。 目的を入力しただけで、自動的にシステムプロンプトを作成してくれるというものです。 他の新機能に比べると、やや地味目ですが、どんな感じのプロンプトを作成してくれるのか気になったので試してみました。 TL;DR 曖昧な一文からでも、マークダウン形式に沿ったプロンプトを書いてくれるので、たたき台としてよさそう。 プロンプト自体がマークダウン形式なせいか、Output形式がマークダウンに引きずられることがある 画像を読み込ませることを前提としたプロンプトも作成できる。 とりあえず試してみる openAI プレイグラウンドのSystem instructionsの右側に[Generate]というボタンが出力されています。カーソルをあわせると、どのようなプロンプト

    OpenAIのプロンプト自動作成機能を触ってみる - Qiita
  • 独自YAMLファイルをJSON SchemaでLSP補完する | おそらくはそれさえも平凡な日々

    Podbardはpodbard.yamlに設定を記述するが、これをエディタで補完したりヒントを出せたりするようにした。 yaml-language-serverとJSON Schema 普段vimで開発してて、GitHub ActionsのYAMLを触ってるときなどに、エディタが適切にヒントを出してくれるのを便利に感じつつ「多分LSPがうまいことやってくれてるんだろうな」くらいに考えて深く追いかけていなかった。これは、JSON Schemaで実現されていることを、今回podbard.yamlの仕様をJSON Schemaで記述している過程で発見した。 GitHub ActionsのJSON Schemaは https://json.schemastore.org/github-action.jsonやhttps://json.schemastore.org/github-workflow.

    独自YAMLファイルをJSON SchemaでLSP補完する | おそらくはそれさえも平凡な日々
  • CompressionStream でブラウザで gzip 圧縮する

    モダンなブラウザは JS API として gzip や deflate が使えます。 昔から Chrome に搭載してるのは知ってたんですが、今見たらだいたい搭載してました。 わかってる人向けに言うと、バンドルサイズ大きめの JS実装の pako や zlib.js が不要になって、ブラウザネイティブの(たぶんHTTP上のgzip展開と同等の)高速な実装が使えます。 // impl const encoder = new TextEncoder(); const decoder = new TextDecoder(); export async function compress(str: string): Promise<ArrayBuffer> { const cs = new CompressionStream("gzip"); const buf = encoder.encode(

    CompressionStream でブラウザで gzip 圧縮する
  • 実装する前にきちんとドキュメントを読んだ方が良い、という話 - Qiita

    どうも、初めまして。 tokeと申します。 今回は自分の失敗談を話したい、と思います。 実装する前にドキュメントを読まないと、最後になってゴールに辿り着けない可能性がある そういう経験をしたのでご紹介します。 例えば、自社で集めた顧客のデータを活用し、Marketoにデータ連携したいとします。 marketoのAPIドキュメントを調べると、顧客の情報を登録する手段では以下の2パターンがあります。 POST /rest/v1/leads.jsonを使うパターン 以下のドキュメントにあるPOST /rest/v1/leads.jsonを使って、顧客のデータを送信し、連携する事ができます。 https://experienceleague.adobe.com/en/docs/marketo-developer/marketo/rest/lead-database/leads [※Marketoで

    実装する前にきちんとドキュメントを読んだ方が良い、という話 - Qiita
  • 【index.ts】そのVSCodeタブ名、わかりづらくない?【page.tsx】

    はじめに VSCodeで、index.tsやpage.tsxなど、同名のファイルを複数同時に開いてしまい、わからなくなってしまったことはありませんか? 実はよく見ると同一名称のファイルを開いているときには右側にディレクトリ名も表示されているのですが、薄い文字かつ、目線移動が必要で分かりづらいです。 この記事では、VSCodeの設定を変更することで、タブ表示名にディレクトリ名を含めて表示する方法を紹介します。 設定方法 VSCodeの設定ファイルsettings.jsonに以下の設定を追加します。 "workbench.editor.customLabels.patterns": { "**/index.*": "${dirname} .../${dirname(1)}", "**/{page,layout,template,route,actions,hooks,components,ut

    【index.ts】そのVSCodeタブ名、わかりづらくない?【page.tsx】
  • 無料で商用にも使える日本の郵便番号APIをリリースしました

    jp-postal-code-api https://github.com/ttskch/jp-postal-code-api郵便番号から住所のデータを取得できるWeb APIです。 GitHub Pagesを使用して静的なJSONファイルとして配信している ため、可用性が高いのが特徴です。また、オープンソースなのでクライアントワークでも安心してご使用いただけます。もしリポジトリの永続性や GitHub Pagesの利用制限 が心配な場合は、ご自由にフォークしてご利用ください。 日郵便によって公開されているデータ を元に住所データのJSONファイルを生成して配信しています。JSONファイルには日語表記・カナ表記・英語表記の住所データが含まれています。ただし、以下の注意事項があります。 大口事業所個別番号の住所データは以下のように出力されます(元データ の内容がそうであるため)

    無料で商用にも使える日本の郵便番号APIをリリースしました
  • Zodスキーマでプロンプト生成を行い構造化データを自由自在に扱えて、LLMプロダクト開発が圧倒的に効率化した話 - Algomatic Tech Blog

    最近はAIエンジニアを名乗ってるerukitiです。フロントエンドもバックエンドも、LLMを触るあれこれもやってるので、「AIエンジニア」くらいを名乗るとちょうどよさそうだなと思ってます。いずれLLM自体の開発なんかもやってるかもしれません。 LLMプロダクトを開発していると、構造化データを作りたいのに、Anthropic ClaudeのAPIにはJSONモードが無いことや、なんならJSONモードやfunction callingを使っても、データが正しい形式に従ってることは保証しがたい、みたいな自体に遭遇することがあります。 JSONが出力できたとしても、構造化データをうまく吐き出させるのは難しいものです。文字列を出力させたいけど、複数あるときは、配列なのか、それともカンマ区切りなのか?項目がオプショナルの場合はどうするか?項目が存在しない、空文字や 0 や undefined や nu

    Zodスキーマでプロンプト生成を行い構造化データを自由自在に扱えて、LLMプロダクト開発が圧倒的に効率化した話 - Algomatic Tech Blog
  • How to use JSON Path · Bump.sh

    API doc platform Publish API doc portals from OpenAPI and AsyncAPI documents. Automated changelog, versioning and governance. Documentation that scales with your API ecosystem. Managed MCP platform Turn your API ecosystem into deterministic, production-ready MCP servers. Define how agents consume your APIs, with built-in authentication and observability.

    How to use JSON Path · Bump.sh