EXPLAZA Tech Blog

株式会社エクスプラザのテックブログです

Terraform + Cloud Runを使ったDifyの環境構築と運用

はじめに

こんにちは、@_mkazutakaです。

今回は、Terraform + Cloud Runを使ったDifyの環境構築と運用についてTerraformのコード等を交えて紹介します。 Cloud Runを採用することで、土日や深夜帯などアクセスがない時間帯のコストを最小限に抑えれたり、VM上で運用するより管理コストを下げることができます。 社内環境にはうってつけですね。

続きを読む

Neosyncによる個人情報の匿名化と合成データ生成:開発者体験の向上へ

EXPLAZAの jun です。
開発者の日常は、テスト、デバッグ、そして何よりもプライバシー保護が大きな課題となっています。特に、実際の個人情報を用いたデータの取り扱いは、多くのリスクを伴います。そこで今回紹介するのが、データの匿名化と合成データ生成を簡単かつ効率的に行えるオープンソースツール「Neosync」です。このツールを使えば、開発環境の同期も同時に行うことができ、実環境でのテストの精度を落とすことなく、プライバシー保護を徹底できます。本記事では、Neosyncがどのようにこれらの問題を解決するかを、具体的な使用例とともに紹介します。

まず今回はSupabaseを利用するため、シンプルなusersテーブルを作成します。

CREATE TABLE public.users (
    id UUID PRIMARY KEY,
    first_name VARCHAR(255) NOT NULL,
    last_name VARCHAR(255) NOT NULL,
    email VARCHAR(255) NOT NULL,
    age INTEGER NOT NULL
);

続きを読む

コミットからPRまでの自動化! llm・OpenCommit・pr-agentを連携してコード改善を効率化

EXPLAZAの jun です。
開発現場では、コミットメッセージの作成、プルリクエストのレビュー、コード改善提案などの作業に多くの時間を費やしています。これらの手作業が開発の足かせとなり、生産性の低下を招いています。しかし最近では、llm、OpenCommit、pr-agentなどのAIツールを組み合わせることで、これらの作業を自動化し、効率的な開発を実現できるようになってきました。本記事では、これらのツールを使ってGitHubでのコミット、レビュー、コード改善を自動化する具体的な方法を紹介します。

今回は以下のAIツールを使っていきます。

  • simonw/llm
    コマンドラインからLLMにアクセスができるようになります。 github.com

  • di-sukharev/opencommit
    コミットを作成してくれます。 github.com

  • Codium-ai/pr-agent
    プルリクエストのレビュー、説明文の入力、コードの改善案をしてくれます。 github.com

続きを読む

GASを使用してHTMLメールを一斉送信するコード生成に特化した「営業アシスタントGPT」を作ってみた

目次

  • 目次
  • これはなに
  • できること
  • できないこと
  • GPTsとは
    • [宣伝]
  • GPTsの作り方
    • ① GPT Builderの立ち上げ
    • ② Create:作りたいものについてプロンプトを送る
    • Preview:プレビューで挙動を確認しながら適宜修正
    • ④ Configure:カスタムしたGPTの説明を加える
  • 最後に

これはなに

ChatGPTの機能の一つであるGPTで、「営業アシスタントGPTs(以下「GASmail」)」を作ってみた様子をまとめたものです。

「GASmail」の機能:
・CVRの高いHTMLメールの作成
スプレッドシートのデータをもとにGASで一斉送信を自動化
を実行するためのコードを、質問に回答するだけで生成します。

続きを読む

論文紹介『ChatGPT1周年:オープンソースLLMはChatGPTにどのくらい追いついているか?』

目次

1. はじめに

こんにちは、LLM Advent Calendar 2023 12日目の記事を担当するtiger_bigriverです。

先日、ChatGPTがリリースされてから1周年が経ち、この1年で本当に様々なことがあったと思います。 このタイミングで、オープンソースLLMがChatGPTにどこまで追いついているのかを確認できる論文をご紹介します。

論文の内容と合わせて、私の方でも調べた情報を追記した記事となります。

続きを読む

GPT-4 Turboにドキュメントのチャンク分けを任せてみる

はじめに

こんにちは、LLM Advent Calendar 2023 4日目の記事を担当する_mkazutakaです。よろしくお願いします。 LLM Advent CalendarといってもRAGの話になりますが、ご容赦ください。

企業独自のデータを使ってLLMからの出力を制御する際には、検索拡張生成(いわゆるRAG)が使われます。 RAGの実装方法としては、「PDFからドキュメント情報を読み取り検索エンジンに保存」「ユーザの入力する質問文から関連するドキュメントを検索エンジンから取得」「取得したものをコンテキストとしてプロンプトに含める」という流れが一般的だと思います。

この際、RAGの課題の一つでもあるのですが、検索結果から取得するドキュメントのサイズ(いわゆるチャンクサイズ)をどれぐらいのものにするかというものがあります。チャンクサイズが小さすぎるとLLMは関連するコンテキストから正しい答えを生成できません。一方で、チャンクサイズが大きすぎると不要な情報が含まってしまったり、検索精度が落ちたり、トークン数が多くなるため不要なお金がかかってしまいます。

このチャンクサイズを決めるには、いくつか方法があります。

  • 特定の文字数で分ける
  • 特定の区切り文字(。、,.\n)などで分ける
  • チャンクに前後の文脈を含ませる(チャンク間でテキストを重複させる)

などなど。最近だと、セマンティッククラスタリングと呼ばれる、前後のテキストの意味をもとにチャンク分けする方法も紹介されています。

というわけで、弊社でも色々試していたのですが、なんと11月にOpenAIから最大128,000トークン扱えるGPT-4 Turboが発表されてしまいました。これだけのトークン数があれば、ほとんどのPDFをまるまる渡すことができます。 となるとですが、細かくドキュメント分けるより、GPT-4 TurboにPDF内のテキスト全部渡していい感じに分けてっていえばいい感じにチャンクに分けてくれるんじゃ...というアイデアが思いつきます。

というわけで、これをやってみるのが今回の記事の内容になります。

続きを読む

問い合わせメールをChatGPTで解析してSpreadsheetとNotionに転記する方法の紹介

はじめに

こんにちは、@_mkazutaka です。
今回は、メールの内容をChatGPTで解析してSpreadsheetとNotionに転記する方法について紹介します。

背景

Explazaでは、営業の問い合わせのメールから、業界、相談者の部署、相談者の役職、導入時期、会社規模、予算、対象などのいくつかの項目を取得し、その内容をSpreadsheetに転記し、Spreadsheet上で各営業ごとのステータスを管理しています。またステータス以上の詳しい状況や実際にお客さまと話した内容等は、Spreadsheetとは別でNotionの一つのページにまとめています。

このため、メールを受け取るごとに営業チームの一人が上記の項目の整備とNotionページの作成を行っています。問い合わせ数が増えて行くごとに仕事が増えるので、ここをなんとか自動化できないかということで今回ChatGPTを使って実装を試みてみました。

続きを読む