2024-01-01から1年間の記事一覧

Slack のスレッドを要約する AI bot を自作する

はじめに こんにちは、a2 です。 ビジネスツールの AI 活用には Slack AI や Notion AI があります。 これらの利用は追加料金が必要ですが、人数が多いと費用は安くなく、簡単に導入できるものではありません。(裏で動いているGPUや AI エンジニアの市場価…

`pnpm create vite my-app --template react-ts` で作られるファイルを眺める

pnpm create vite my-app --template react-ts はおそらく 30 回くらい流しているコマンドだが、今だに生成後のファイルをみて、「これなんだっけ?」と思って調べている。 最近少し変化もあったようなので、改めて調べてまとめておく。 vite.config.js vite…

Go で Amazon Bedrock でミニマム Chatbot を作る

作るもの Amazon Bedrock の API を local から叩きたかったので Chatbot を作ることにしました。 完成物は動画を見ていただくとイメージがつくかと思いました。 github.com AI 系のアプリケーションは Python で実装されることが多いですが、Langchain など…

runn を Go test 中に呼び出す

runnは、HTTPリクエストのシナリオテストに便利なツールです。CLI として使用することもできますが、Go のテストコード内で runn を使用することで、より柔軟で強力なテストが可能になります。 実際のサーバーに対してリクエストを行おうとすると、正常なリ…

Casbin のチュートリアル + α で本番で使えるようにする

casbin を使って web application の認可を行おうとする場合、使い方の例が少なく、混乱する。 基本 How It Works | Casbin このページの例を少し広げると、以下のような設定になる import "github.com/casbin/casbin/v2" e, err := casbin.NewEnforcer("pat…

Dify の setup でつまづいたログ

Dify 使ってますか?ワークフローを作れて、可能性が広がる素敵なツールです。 そんな Dify を local で立ち上げようとしたら、初手からつまづきました。Mac 環境で同様の事象が起きる可能性があるため、ログを残しておきます。 事象 公式の Github によれば…

Remix を触ってみた感想とログ

最近、作ってみたいWebアプリを思いつき、Vercelにデプロイしたいと考えました。せっかくなら使ったことのない技術を使おうと思い、RemixでSSRに挑戦することにしました。 SSRと言えばNext.jsのApp RouterとPage Routerは経験がありましたが、最近はバックエ…

API Gateway V2 の Lambda Authorizer でとりあえずの自分用認可を実装

前回に引き続き、手探りで API Gateway を設定している. 今回は認証を追加する。といっても実装中の Lambda が外部から好き勝手に叩かれなければそれでいいので、決め打ちの key の値があるかどうか、くらいの設定をする。 API Gateway の API Key を利用し…

AWS Lambda and API Gateway でサーバーレス application を構築する terraform tutorial をやってみた

AWS Lambda の使い方を手探りで調べていたら、Hashicorp が出している tutorial にたどり着いた。 developer.hashicorp.com AWSの勉強はリソースが残ったときにお金がかかるのが悩みだろう。 私は普段は terraform でリソースを記載して、一日の終わりに ter…

LLM の力を借りながら Lambda から DocumentDB を呼び出す実装を書いた

個人プロジェクトの一環で、Amazon DocumentDB を試してみることにしました。Amazon DocumentDB も MongoDB も初めて使うため、ChatGPT と Claude に手順を聞きながら作業を進めました。ある程度ハルシネーションがあることは普段から認識していましたが、や…

pnpm init と pnpm create vite で生成される package.json を比較してみた

pnpm init と pnpm create vite で、生成される package.json にいくつか違いがあることに気づいたので、調べてみました。 生成される package.json pnpm init の場合 $ pnpm init Wrote to //package.json { "name": "local-chat-app", "version": "1.0.0",…

組織を動かすのは気合だが、気合だけでは意味がない

先日友人と話していて、経営層のメッセージが気合いだ根性だと気持ちに寄っている、という話しを聞いた。似たようなことは私も社会人になってから幾度となく経験しているので、一度考えてみた。 およそ感情ではどうにもならない、プログラムで動くだけの "ソ…

麻雀の結果の計算をする Web アプリを作って Vercel にデプロイした

麻雀の結果の計算をする Web アプリを作った。 プロトタイプとしてざっと作ったので、裏の実装はそれはもうひどいものだが、ひとまず成果物はこちら。 Vite + React + TS 画面のスクリーンショット 手法 AI を使った開発をしたい意図もあったので、以下のよ…

ollama を repository から動かす

Ollama は stop 実装がまだない 実装読む限り signal handling はしてるようにみえるから signal 送ったんだけどプロセスが止まらない CLI だとどうもbackground で実行してしまうので、開発のように動かしたい。そこで repository を clone して動かす。環…

VScode の extension を作ろうとしていきなりつまづいた

VSCode のオレオレ extension を作りたいと思った。作りたいよね? Your First Extension | Visual Studio Code Extension API ↑に従って開発を始めた。 global install はしたくない & 普段 pnpm を使っているので、コマンドを微修正しながら進めた。 pnpm …

Go slog の JSON Handler で入れ子の出力をする

slog の基本 Go1.21 から公式の標準ライブラリに構造化ログを出力可能な slog が追加されました。 呼び出し方 デフォルトで時刻やログレベルが付与されます。 比較のため、fmt でも出力します fmt.Println("Hello, World!") slog.Info("Hello, World!") slog…

OpenAI の API を叩く AI Agent を Python で作り、Go の開発を全部 AI にやってもらいたい!

こんにちは、a2 です。 Go のアプリケーションのコードをモリモリ生成してくれる AI Agent を作ることができないかなと思い、試してみてます。タイトルに書いたようなことはまだ全然できてないのですが、今回はその第一歩を書いてみます。 背景 今、開発現場…

Postmanを使用したブラウザCookieの同期と効率化

はじめに Web 開発において、ブラウザCookieの効率的な使用は、APIテストの精度を向上させる上で重要です。 Postman では Cookie を手動で入力することも可能ですが、Developer tools から cookie をみてコピー&ペーストする作業を繰り返し行うのは無駄が大…