
AWS AppSync Events でリアルタイム配信を試してみる
先月末にAWS AppSyncに新しいAPIが導入されました。 https://aws.amazon.com/jp/blogs/news/announcing-aws-appsync-events-serverless-websocket-apis/ AppSyncといえばGraphQLのマネージドサービスでしたが、新しくWebSocketベースのEvent APIという選択肢が追加されました。 Event APIはWebSocketベースなので、イベント発行は即時にクライアント側で受信できます...
記事を読むOpenAI の Realtime API を使ってAIと音声会話するWebアプリを実装してみる
今までOpenAIのRealtime APIを使ってCLIベースの音声会話スクリプトを作成しました。 /blogs/2024/10/07/openai-realtime-api-intro/ /blogs/2024/10/09/openai-realtime-api-function-calling/ このスクリプトは音声変換ツールのSoX(Sound eXchange)のおかげで簡単に実装できましたが、やっぱりWebアプリも作ってみたいですね...
記事を読むOpenAI の Realtime API で音声を使って任意の関数を実行する(Function calling編)
つい先日OpenAIのRealtime APIを利用した以下の記事を書きました。 新登場の OpenAI の Realtime API でAIと音声会話する ここではCLIベースの超簡単会話ツールを作成しました。 Realtime APIはChat Completion API同様にFunction callingにも対応しています。これを利用すると音声でも任意のAPIを実行できるようになります。 今回はこれを試してみます...
記事を読む新登場の OpenAI の Realtime API でAIと音声会話する
先日OpenAI から Realtime API という注目機能がリリースされました。 OpenAI Blog - Introducing the Realtime API Realtime APIは今秋から段階的にロールアウトしたChatGPTのアドバンスドボイスモードに相当するAPIです。 以前も類似のことはできましたが、音声をテキストに変換、プロンプトとしてLLMにインプット、レスポンスのテキストを音声に変換という長いステップを踏む必要がありました...
記事を読むOpenAIの File Search の結果を分析してチューニングする
OpenAIの Assistants API では、ツールとして File Search(RAG) が利用できます[1]。 これを使えば、ファイルをアップロードするだけでAIに独自のナレッジを追加できます。 自前でベクトルデータベースを用意したり、Embedding API を使ったベクトル化やベクトル検索の実装が不要になります。 この File Search 登場時は、中身はブラックボックスでチューニングもできませんでしたが、何度かアップデートされており状況が変わってきています...
記事を読むOpenAIのStructured Outputsを使ってAIの出力スキーマを定義する
先日OpenAIからStructured Outputsという機能がリリースされました。 OpenAI Blog - Introducing Structured Outputs in the API Structured Outputsは、その名前の通り構造化された出力を強制する機能です。 とはいえ、今までもAIからのレスポンスをJSON形式で返却するパラメータはありました(response_formatにjson_objectを指定)...
記事を読むLambdaでPlaywrightを動かす(Lambdaレイヤー / コンテナ)
今クロスブラウザテストでよく使われるツールといえばPlaywrightですね。 テストでなくとも単純にブラウザ自動化ツールやスクレイピングツールとして使っている現場も多いかと思います。 とある事情で、Lambda上でPlaywrightを動かしてみましたが、予想以上に苦戦したので備忘録も兼ねて手順をまとめます。 Lambdaレイヤーを使う # これが一番簡単な方法です。 Playwright等のツールはそれ単体では動作せず、Chromium等のブラウザをインストールしなければなりません...
記事を読むValibot: 超軽量&型安全なスキーマバリデーションライブラリ
JavaScript、とりわけTypeScriptプロジェクトでデータのバリデーションを行う際、ZodやYup等のライブラリがよく使われています。 今回は、最近これらの代替として注目を集めているValibotというライブラリを紹介します。 Valibotとは? # Valibotは構造化データを検証するためのスキーマライブラリです。 公式ドキュメントではその特徴を以下のように説明しています...
記事を読むServerless Framework v4 の変更点を整理する
先日(2024-06-14)Serverless Framework v4のGAリリースが発表されました。 Serverless Framework V4 Generally Available 今回はこのv4リリースについて、主要な変更点を主観的に整理してみました。 ライセンス変更 # 対象ユーザーに該当する場合は、インパクトが大きいのはやはりこれですね。2023年に事前予告はありましたが、それに沿った形である程度の売上規模を持つ組織での利用が有償になります...
記事を読むTypeScript 向けの軽量ORマッパー Drizzle を使う
少し前ですが、TypeScript向けのORマッパーとして TypeORM を紹介しました。 ORマッパーのTypeORMをTypeScriptで使う TypeORMのスキーママイグレーションを使う この記事は予想以上にアクセスがあり、RDBおよびORマッパーの注目度はいまだに高いと思いました。 最近TypeScript向けで新しいORマッパーの Drizzle を使ってみました。 軽量で使いやすいAPIを提供していて、結構良いなと思いましたので今回はこちらを紹介させていただきます...
記事を読む