タグ

webappに関するsh19910711のブックマーク (1,013)

  • プロンプトからREST APIを作るサービス『Hanabi.REST』の技術構成

    Hanabi.REST AIにHonoJSのバックエンドを書かせて遊ぶ、Hanabi.RESTというサービスを一般公開します。それに際して、この記事では、Hanabiの紹介と簡単に技術スタックを解説していきます。 皆さんは、AIがプロンプトからUIを生成する、V0というサービスをご存じですか?僕はあれを見たときに、ある妄想が膨らみました。 「V0のAPI版があれば、プロンプトからWebアプリケーションを作れるやん!!」と。 当初はハッカソン用の小プロジェクトとして始めましたが、想定以上に面白い結果が得られたため、開発を継続することにしました。技術的な制約、様々な黒魔術による不安定な挙動、LLMの劣化など、数多くの壁を乗り越えながら、約半年をかけてようやくリリースに至りました!! 次のリンクから実際にAIが生成したTwitter風のAPIを試すことが出来ます! また、会員登録すれば誰でもAP

    プロンプトからREST APIを作るサービス『Hanabi.REST』の技術構成
    sh19910711
    sh19910711 2024/05/29
    "速く、面白く、動くをコンセプトに開発 / プロンプトを元にAIがAPIの仕様を決めて、SQLを書き、HonoJSで実装 / 生成されたAPIは、ブラウザ上でそのまま試すことが出来る上に、ローカル環境にクローンしたり"
  • Remix のドキュメントを Gemini 1.5 Flash で日本語化しました

    Remix ドキュメント日語版を公開しました はじめに この度、Remix の公式ドキュメントを日語に翻訳し、「Remix ドキュメント日語版」というサイトで公開しました。 記事では、Remix ドキュメントの翻訳を Remix を使って開発した内容について技術的な側面から説明します。また、これから Remix を使った開発を始めたい方に向けて、日語版ドキュメントを活用いただく方法についてもご紹介します。 日語版ドキュメントの構成 今回翻訳したRemixドキュメントは、以下のようなカテゴリに分かれています。 start: 5分でできるチュートリアルなど、Remixを始めるためのガイド。 discussion: Remixの設計思想や概念の解説。 file-conventions: ファイルベースルーティングや特別なファイルの規約。 route: ルートモジュールの仕様。 com

    Remix のドキュメントを Gemini 1.5 Flash で日本語化しました
    sh19910711
    sh19910711 2024/05/29
    "Gemini 1.5 Flash はマークダウンの記法を維持しつつ、英語のドキュメントを日本語に翻訳してくれます / 手作業のみでは難しい大量のドキュメント翻訳を効率的に進めることができました"
  • ElectricSQLでLocal-firstなアプリを作る | DevelopersIO

    Introduction Electric は先日TechRadarで知ったフレームワークです。 このフレームワークはWebアプリ/モバイル用のlocal-first syncフレームワークです。 local-firstとは、Web/モバイルアプリがローカルにある組み込みDB(SQLite など) とやり取りし、大元となるDBとレプリケーションでデータが同期されるアーキテクチャです。 Electricは、ローカルDBSQLite、大元のセントラルDBにPostgreSQLを使用します。 今回はElectric SQLでサンプルコードを動かしてみます。 Electric SQL? Electricは、Local-first のアプリを構築するためのシステムです。 ここにあるように、Electricを使うと、 リアクティブ、リアルタイム、Local-first なアプリをPostgres上で

    ElectricSQLでLocal-firstなアプリを作る | DevelopersIO
    sh19910711
    sh19910711 2024/05/28
    "Electric: アプリ/モバイル用のlocal-first syncフレームワーク + データをローカルに保持し、後でサーバーと同期 / ローカルDBにSQLite、大元のセントラルDBにPostgreSQLを使用 / Martin Kleppmann氏をはじめとするその筋では有名な人たち"
  • Soda SQLとStreamlitでポータブルなデータ品質チェックツールを実装する

    以前、Great Expectationsを使ったデータバリデーションの仕組みについての記事を書きました。 Great Expectationsはデータに対するテスト実行とプロファイリングを実行し、結果をHTMLで出力してくれる、高機能で便利なツールでした。しかし、環境の構築や設定の準備に手間が掛かり、スモールスタートでテストだけ始めたいというような場合は導入のコストがネックになると思います。 一方で、Great Expectationと同様に有名なツールとして、Soda SQLというものがあります。こちらは、コマンドラインツールで、pipでインストールしてYAMLでテストやプロファイリングの設定を記述すればすぐに実行することができます。 ただし、テストやプロファイリングの実行結果はJSONになるので、Webブラウザでレポートを見たいといった場合には、自前でその仕組みを実装する必要がありま

    Soda SQLとStreamlitでポータブルなデータ品質チェックツールを実装する
    sh19910711
    sh19910711 2024/05/27
    "スキャンはSoda SQLを使い、結果のレポートはStreamlitで表示 / 過去のスキャン結果との比較や時系列での可視化などにも活用 / Soda SQL自体は、MySQLやRedshiftなど様々なターゲットに対応" 2022
  • 機械学習向けWeb UIライブラリ Gradio - Qiita

    はじめに Gradioは機械学習モデルを操作するためのWeb UIを簡単に作成できるPythonライブラリです。 例えば、ファイルから画像を読み込んで分類するUIを作るとします。そこには画像をアップロードするためのフォームや、分類結果を表示するためのテキストフィールドが必要です。 Gradioを使えば、これらの要素を含むUIを簡単に作成することができます。 以下はHuggingFaceのWebサイトに公開されている画像分類モデルを使って、画像の分類結果を表示するUIを作成した例です。examples引数で与えているのはUIに渡せるサンプル画像です。 import gradio as gr gr.Interface.load( "huggingface/google/vit-base-patch16-224", examples=["./images/cat.jpg", "./images/

    機械学習向けWeb UIライブラリ Gradio - Qiita
    sh19910711
    sh19910711 2024/05/27
    "Gradio: 機械学習モデルを操作するためのWeb UIを簡単に作成できるPythonライブラリ / gradio.Interface: 入力を処理する関数、入力のデータ型や入力形態、出力のデータ型や出力形態の3点セット" 2022
  • Streamlit 1.35.0の新機能紹介 - Qiita

    Streamlitとは StreamlitPython向けのWebアプリケーションフレームワークです。 Streamlitを使うとフロントエンドの知識ゼロでもデータを可視化するためのWebアプリケーションを簡単に作れます。以下のような機能が特徴。 変数を地の文に書くだけで、GUIに出力される(マジックコマンド) st.radioやst.text_inputのようなWidget APIを呼び出すだけで、GUIコンポーネントが生成される Streamlitの最新バージョン Streamlitの最新バージョンはChangelogで確認できます。 2024/1/31時点で最新バージョンは1.35.0です。 1.35.0では次がHighlightsとしてアナウンスされています。 チャートのSelection DataFrameのSelection st.logo また、st.page_linkにG

    Streamlit 1.35.0の新機能紹介 - Qiita
    sh19910711
    sh19910711 2024/05/26
    "Selection: GUI上で選択したデータをPythonコード側で受け取れる機能 + 現時点ではst.plotly_chart、st.altair_chart、st.vega_lite_chartの3つの高機能なチャートが対応 / チャートを操作するたびにアプリがRerunされます"
  • チーム立ち上げにAWSを活用したらClaudeさんに褒められた話

    2024年5月11日 JAWS-UG DE&IでのLT資料。

    チーム立ち上げにAWSを活用したらClaudeさんに褒められた話
    sh19910711
    sh19910711 2024/05/13
    "Amplifyで作ったナレッジサイトの記事から回答できるQ&A Bot / Bedrock + UIはStreamlit + ベクターストアをFAISSとAmazon Titan + Hugoのテンプレートを活用 / 爆速で社内ブログを作成 + ナレッジ検索の幅が広がった"
  • Cloudflare AI Gatewayを利用して、Amazon Bedrockを使ったAPIの利用状況の可視化、分析、ロギングできるか試してみた | DevelopersIO

    Cloudflare AI Gatewayを利用して、Amazon Bedrockを使ったAPIの利用状況の可視化、分析、ロギングできるか試してみた どうも!オペレーション部の西村祐二です。 以前、Hono + Cloudflare Workers + AWS SDK for JavaScript v3 + Amazon Bedrockの構成でAIモデルの動作確認用のAPIを作りました。 Hono + Cloudflare Workers + AWS SDK for JavaScript v3の構成でAmazon Bedrockが利用できるか試してみた | DevelopersIO 今回このAPIに対して、AIアプリケーションの利用状況を可視化、分析、キャッシュ、生成された回答のロギングなどの環境を提供するCloudflare AI Gatewayを試してみたいと思います。 Cloudfl

    Cloudflare AI Gatewayを利用して、Amazon Bedrockを使ったAPIの利用状況の可視化、分析、ロギングできるか試してみた | DevelopersIO
    sh19910711
    sh19910711 2024/05/11
    "Cloudflare AI Gateway: モデルの利用状況をモニタリングできるダッシュボードであったり、ログ、キャッシュの機能もあり + 今後、DLPの機能や使用状況によるアラートの機能など多くの便利な機能が計画"
  • Observability はじめの一歩 CloudWatch Synthetics

    sh19910711
    sh19910711 2024/05/08
    "なるべく楽に始められる監視が良い + 現状動作しているアプリケーションになるべく手を加えたくない / CloudWatch Synthetics: WebアプリケーションとAPIを簡単に監視できるようにする / Canary: Lambda関数で6種類のBlueprintが用意"
  • [AWS CDK] ALBとCognitoを使ってOktaをIdPとするSAML認証をしてみた | DevelopersIO

    サクッとSAML認証を実装したい こんにちは、のんピ(@non____97)です。 皆さんサクッとSAML認証を実装したいなと思ったことはありますか? 私はあります。 自分でSAML認証のService Provider(SP)側の処理を実装するのは大変です。そのような場合はALBとCognitoを使うと簡単に行えます。 ということで実際にやってみました。今回はIdPとしてOktaを使用します。 「SAML認証ってなんやねん」や「OktaのSAMLアプリってどうやって作成すればいいんだ」、「CognitoでSAML認証ってどうやって行えばいいんだ」という方は以下ドキュメントをご覧ください。 初心者向けSAMLガイド SAMLアプリ統合を作成する | Okta ユーザープールへの SAML ID プロバイダーの追加 - Amazon Cognito また、せっかくなので以下アップデートで可能

    [AWS CDK] ALBとCognitoを使ってOktaをIdPとするSAML認証をしてみた | DevelopersIO
    sh19910711
    sh19910711 2024/04/29
    "サクッとSAML認証を実装したい / 自分でSAML認証のSP側の処理を実装するのは大変 + ALBとCognitoを使うと簡単 / Name ID formatをPersistentに設定 + Attribute Statements : Oktaのuser.emailをemailとして渡す"
  • 頑張って Axum を Cloudflare Workers で動かす

    worker = { git = "https://github.com/cloudflare/workers-rs", branch="kflansburg/http-fetch", features = ["http"] } マージがマジ楽しみ! Axumがサポートされたぞ!!!!!!!!!! Cloudflare Workers では少し前から Rust が動いていた。 (正確には動いているのは WebAssembly だが。) Cloudflare Workers は V8 ベースの技術に立っているので、WebAssembly がそのまま動くし、つまり WebAssembly に変換できたらコンパイル前の言語は何であっても良い。 ちなみに V8 で動くものに変換できたらいいので hoge to JS なトランスパイラがある言語は全部動く。 その中でも Rust は worker-r

    頑張って Axum を Cloudflare Workers で動かす
    sh19910711
    sh19910711 2024/04/29
    "Cloudflare Workers: V8 ベースの技術に立っているので、WebAssembly がそのまま動く + WebAssembly に変換できたらコンパイル前の言語は何であっても良い / workers-rs: Routerがある + リバースプロキシー目的で使うときは使い勝手が良い"
  • サーバ再起動しても cron で Web アプリを雑に立ち上げ

    超楽にRubyで雑に書いたスクリプトをsystemdで管理したい! - 宇宙行きたい で systemd がユーザ権限で使えることを知る。 開発環境用では nohup と cron の @reboot を使っていました。こちらもお手軽なので紹介。 @reboot とは crontab(5) に @reboot があれば使えます。その名の通りリブート時に一回だけ実行。Ubuntu なら利用可能。 $ man 5 crontab (省略) Instead of the first five fields, one of eight special strings may appear: string meaning ------ ------- @reboot Run once, at startup. @yearly Run once a year, "0 0 1 1 *". @annual

    サーバ再起動しても cron で Web アプリを雑に立ち上げ
    sh19910711
    sh19910711 2024/04/29
    "crontab(5) に reboot があれば使えます / その名の通りリブート時に一回だけ実行 + Ubuntu なら利用可能 / これで apt upgrade の OS リブートも気軽に行えるようになり"
  • Reactpyとか言う面白いライブラリ

    こんにちは。だだっこぱんだです。 今まではフロントエンドな人間のつもりでしたがいつの間にか Most used languages の1位がPythonで50%になっていてあれーってなっています。 今回はpythonで面白いライブラリを見つけたので紹介していきます。 Pythonフロントエンドpythonフロントエンドする必要ある?」って思う方がいるかもしれません。 割と需要あります。 今ある中ではGradio, Streamlit が有名ですね。 これらは stable-diffusion-webui で使われたり、AI関係の技術のデモでは毎度お馴染みレベルで使われます。 Gradioのデメリット 拡張性が低い バグが多い システムがわかりづらい(フロントエンドをやっている人間からすると) Gradioはクラス名を変えられなかったり、reactiveじゃなかったりして若干使いづら

    Reactpyとか言う面白いライブラリ
    sh19910711
    sh19910711 2024/04/27
    "ReactPy: pythonでreactのようにフロントエンドを書けるライブラリ / onClickやuseEffectなどの関数は全てサーバー側で実行 / 推論の処理を直接呼び出して返り値を表示することができたり" 2023
  • Streamlitを使ってデータカタログを作ってみた

    sh19910711
    sh19910711 2024/04/27
    "SQLを実行する時にどのテーブルを使うべきか理解するのに苦労 / カタログ型のソフトウェアは高額 + StreamlitがイケてそうだからStreamlitで作ろう / Streamlit in Snowflakeにて、簡単にアプリをデプロイすることもできる"
  • Heroku PostgresとAWS BedrockとHugging FaceでRAGを作ってみた - Qiita

    2023年11月にHeroku Postgresql 15 がpgvectorに対応しました。これによりHeroku Postgresがベクトルデータベースとして利用できるようになりました。 記事では、最近話題のClaude2.1やText Embeddingと組み合わせ、Heroku Postgres内データを元に生成AIが回答してくれる、 Retrieval Augment Generation (RAG) を試作し、実際どんな回答を返してくれるか?検証してみました。 今回使用したもの 個人的に興味のあるものや、使いやすいものを選びましたので、特にこの組み合わせでないといけないわけではないです。 ■ ベクトルデータベース & ナレッジベース Heroku Heroku Postgres (PostgreSQL) pgvector ※今回の主役! ■ 大規模言語モデル AWS Bedr

    Heroku PostgresとAWS BedrockとHugging FaceでRAGを作ってみた - Qiita
    sh19910711
    sh19910711 2024/04/25
    "Heroku Postgres: pgvectorに対応 + ベクトルデータベースとして利用できるように / Heroku Connectを使い、Heroku Postgres <=> Salesforce 同期しておけば、結構シンプルな構成で、Salesforceレコードのベクトルデータを管理できそう" 2023
  • 社内で使う npm パッケージの作成に Deno を採用した話 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちわ。フロントエンドエキスパートチームの@nus3_です。 最近、社内用の npm パッケージを作る必要があり、そのパッケージは依存が少なく、実装もシンプルだったので、npm パッケージの作成には Deno と dnt を採用しました。 dnt とは dnt は Deno で実装したモジュールを CJS、ESM に対応した npm パッケージに変換してくれるビルドツールです。 使い方も簡単で、次のように dnt が提供するbuild関数にエントリーポイントや出力先などの必要な情報を渡すだけです。 import { build } from "https://deno.land/x/dnt@0.38.1/mod.ts"; await build({ entryPoints: ["./mod/index.ts"], // Denoで実装したモジュールのエントリーポイント outDir:

    社内で使う npm パッケージの作成に Deno を採用した話 - Cybozu Inside Out | サイボウズエンジニアのブログ
    sh19910711
    sh19910711 2024/04/24
    "dnt: Deno で実装したモジュールを CJS、ESM に対応した npm パッケージに変換してくれるビルドツール / Deno: Linter や Formatter、tsconfig の設定をせずにすぐに開発を始められる + 実装したい機能に集中できた" 2023
  • 現場で役立つGraphQLの知見をまとめた"Production Ready GraphQL"を読んだ - kymmt

    GraphQLを久しぶりに使うことになったので、復習のために"Production Ready GraphQL"を読んだ。 book.productionreadygraphql.com 著者はGitHubとShopifyでGraphQL APIの開発に携わっていた人なので、信頼感がある。GraphQL APIの開発をしようとした人はだいたいGitHubとかShopifyとかのAPIリファレンスを参考のために読んだことがあると思う。 まず、このでは、GraphQLはクライアントの種類やユースケースの増加に伴う"One-Size-Fits-All"な設計のAPIの問題を解決するものであるとしている。ここで、"One-Size-Fits-All"は、各エンドポイントの機能を充実させて汎用的にしすぎることで、APIを使うのもメンテナンスするのも難しくなった状態のことをいう1。 "One-Siz

    現場で役立つGraphQLの知見をまとめた"Production Ready GraphQL"を読んだ - kymmt
    sh19910711
    sh19910711 2024/04/23
    "One-Size-Fits-All: 各エンドポイントの機能を充実させて汎用的にしすぎることで、APIを使うのもメンテナンスするのも難しくなった状態 / データだけではなく、導出できる値も必要ならフィールドとして返す" 2023
  • Vercel AI SDK で Ollama を使う方法

    はじめに Vercel AI SDK (React 等から LLM の API をいい感じに stream で呼び出せるようにするやつ) から Ollama (OSS の LLM をローカルで動かすやつ) を呼び出す方法を調べました。 参考 課題 Vercel AI SDK の サンプルコードを、OpenAI から Ollama の langchain のモデルを使って、置き換えて動かそうとしたけど、なぜかうまくいかなかった。 解決方法 ここのディスカッションにいろんな解決方法が記載されている。その中からいくつか試した。 解決方法 1 OpenAI Compatibility API を使う OpenAI API と同じ API で呼び出す方法。呼び出せるモデルに制約がある。マルチモーダルの llava は呼び出せない。 URL 変えるくらい。シンプル。すんなり動いた。 解決方法 2 la

    Vercel AI SDK で Ollama を使う方法
    sh19910711
    sh19910711 2024/04/23
    "Vercel AI SDK: React 等から LLM の API をいい感じに stream で呼び出せる / OpenAI Compatibility API (Ollama): OpenAI API と同じ API で呼び出す + 呼び出せるモデルに制約 / 最近、langchain のライブラリの一部が、coreとcommunityにわかれた"
  • FastAPI と RabbitMQ を用いた機械学習タスクの非同期処理

    はじめに 最近,機械学習を使ったアプリケーションのバックエンドでどういった処理を行ってモデル作成などを行っているか気になったので,モデル作成時によく行われる非同期処理を FastAPIRabbitMQ を用いて検証したお話になります. 機械学習のようなモデル作成に時間がかかる場合,モデル作成を行うリクエストに対して,その情報を受け取ったというレスポンスだけを先に返し,実際の処理は非同期で行われることが多いと思います.この処理を RabbitMQ という OSS の message queuing service を用いて実施した紹介になります. あと個人的に RPC (Remote Procedure Call) や Publish/Subscribe の仕組みを理解したいという気持ちもありました. 以下のリポジトリにソースコードなどを置いてあります. 概要として,以下のような流れで

    FastAPI と RabbitMQ を用いた機械学習タスクの非同期処理
    sh19910711
    sh19910711 2024/04/21
    "FastAPI と RabbitMQ を用いて WebAPI 形式で,機械学習タスクの非同期処理を行う / pub/sub の仕組みを理解するために Celery は使わずに RabbitMQ の python ライブラリである pika を使って実装" 2022
  • HTMXとRustを組み合わせて遊んでみた

    なにやら少し話題になっていたHTMXが気になっていたので、触ってみました。 基的なことは公式リファレンスにまとまっているので、 今回はRustとHTMXを利用してカウンターのWebアプリを作成してみました。 HTMXとは? htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext 意訳すると、「JavaScript使わんでも色々できまっせー」って感じらしい。 多分、実際に使ってみると言ってることがわかってくる。 サンプルコード maudを利用して、H

    HTMXとRustを組み合わせて遊んでみた
    sh19910711
    sh19910711 2024/04/20
    "HTMX: 勝手に距離を置いていましたが、触ってみると面白かった + 公式サイトにあるエッセイを読んでいても、HTMXに対する熱い想いを感じられて良い / maudを利用して、HTMXを用いたテンプレートを作成"