ChatGPT API を利用したシステムを作成する際に参考にできるもの
ChatGPTを利用したシステムを構築する際に参考になりそうなもの。それぞれのブログ主には感謝しかない。
ChatGPT (GPT-4) API と AWS Amplify で会話履歴と文脈を読んで回答する LINE ボット を作る
gpt-3.5-turboとgpt-4を実際に動作させて比較した記事がとても良かった。
技術スタック
- Amplify (Wehookの受け口)
- Lambda(処理)
- DynamoDB
- Amplify CLI(環境構築)
- AWS Systems Manager Parameter Store(秘匿情報管理)
- python
ローカルでのテストは、amplify mock コマンドを使用
非常に丁寧な説明で、ChatGPTに加えてamplifyでの開発も体験できる。 amplifyは、Amplify Studioでローコード開発(figmaからreactのコード生成)ができるため注目していた。
https://docs.amplify.aws/console/
ChatGPTとLineを連携は、Edge系のcloudflare workesで試したい。実行制限にひっかかるならLamadaをラップしているnetlifyのfunctionも検討できるが、この場合、DBはどうする?cloudflare workesは、dynamodbの代わりとしてKVを使えるが、netlifyはDB系のサービスは用意されてないのかな。
このようにAWSを好意的に受け止めきれない僕はすぐに代案を考えてしまう。
しかし、同じブログ主の下記の記事はこれこそAWSということでとてもいいのではなかろうか。
ChatGPT風の画面を表示できるChatbot UIをFastAPIで作成した自作LangChainサーバに接続させる方法|mah_lab / 西見 公宏|note
技術スタック
- Chatbot UI(nextjs)
- LangChain
- fastAPI(python)
- Railway
Chatbot UIを使うことで、OpenAI以外のチャットボット実装も同じインタフェースで簡単に試せるらしい。 これからは、GoogleのPaLM、AWSの「Amazon Bedrock」の「Titan Text」なども同時に試したくなるでしょう。
LangChainとFastAPIのストリーミングで一文字づつ入力されている感じで表示しているところがポイントなのだろうか。
fastAPIを使わずにtypescript版のLangChainでできないのだろうか?
pythonを触ったことがないでついつい代替案を考えてしまう。
しかし、下記の記事はこれこそpythonということでとてもいいのではなかろうか。
LlamaIndexの詳細は下記が詳しい。
ChatGPTで独自データを利用できるLlamaIndexはどんな仕組みで動いているのか?調べてみました | DevelopersIO
更に、LangChainやLlamaIndexとのインテグレーションがウリのベクトルDBのChromaについての記事が参考になる note.com
Streaming Real-Time Chat Messages into Scylla with Apache Pulsar
ChatGPTとは関係がないがチャットには関連があるものとしてメモしておく
- scylla
- apache-pulsar
scyllaはdynamodbを代替するOSS。dynamodbよりも高速
apache-pulsarは、kafkaと何が違うのだろうか。javaでの実装が好きじゃないのだが。
下記の記事によれば、KafkaとPulsarは出自が異なるようです。 qiita.com
Kafkaはメッセージングからストリーミング機能を取り入れたもの、Pulsarは、メッセージングとストリーミングの両方の機能のために設計されたもの
Kafka は高スループットを、Pulsarは低レイテンシーを指向しているとのこと。
有名なSplunkの内部では、Pulsarが利用されている。
apache-pulsar関連の記事を探していて出てきたApache Flinkというもの
連携したデータを随時集計することにしました。 データの連携にApache kafka, 集計にApache Flink を使用することで、大量に流れ込むデータを高速に分散処理することができ、 繁忙期であっても、常にほぼリアルタイムのデータが把握 https://www.aim.ac/pickUp6.html
ストリーミング系はどこかでまとめて学習しないとね。
AIに手足ができる!Zapier Natural Language Actions + LangChainがすごいので試してみた【LangChain・Zapier NLA・OpenAI】 | DevelopersIO
zapierの設定を自然言語でできるようにするもの。まだまだ開発中のような段階。しかし、未来を感じる。
よく似た日本製のサービス。なかなかすごい。 ascii.jp
UIをアプリにする場合
Lineやslackではなくて独自のチャットアプリをマルチプラットフォームかつwebのアプリ化で対応しようとした場合の選択肢