• 【Python】ChatGPTとLangChain使って自分のデータから検索させる

    目的 ユーザーがChatGPTに質問をするとOpenAIが持っているデータベースを参照して回答してくれます。しかしこのデータは2021年までしか保存されていないため、それ以降のデータは質問しても回答してくれません。例として2022年にリリースされたLangChainのフレームワークのことをChatGPTに質問すると下記の画像のように知らないと回答されます。 また、自分でアップロードしたデータを参照させたい場合もファイルのサイズに制限があります。 しかし、今日紹介する、PyhotnフレームワークのLangChainとChatGPTを使用することで自分で指定したデータからクエリさせることが可能になります。例として同じLangChainについて質問をさせました。そしてChatGPTにLangChainのドキュメンテーション(英語)を読み取りさせています。ChatGPTに読ませたファイルはGitHubのdataディレクトリ内にあります。 このテクノロジーはアメリカの大企業のQ&Aやカスタマーサポートなどで使われ始めている機能で、すぐに当たり前の技術になってくるでしょう。(私がアメリカにいるので日本ではどれくらい復旧しているかは確認していません。) 完成したコードはGitHubから見てください。 先に準備(理解)しておくこと 今回のプロジェクトにはOpenAIのAPIキーが必要になります。このキーを取得するにはクレジットカードを登録する必要があります。テストくらいのリクエストのみであればジュース代だと思って使うのもありだと思います。※自己責任で進めてください。 chromaDBはオプショナルですが、ChatGPTに入力した記録を残しChatGPTがその会話をデータとして参照できるようにします。 LangChainは今回の主役になるフレームワークです。… 記事を読む

  • 【埋め込みデータベース】Chromaとは

    埋め込みデータベースとは 埋め込みデータベース(Embedding Database)は、データの特徴表現を効率的に保存・検索するためのデータベースです。埋め込み(Embedding)は、データを低次元のベクトル空間に変換する手法であり、データの意味や特徴を抽出した表現を得ることができます。 埋め込みデータベースは、一般的に機械学習や自然言語処理のタスクにおいて特に有用です。例えば、顔認識システムでは、顔画像を埋め込みベクトルに変換してデータベースに格納し、そのベクトルとの距離を計算することで、特定の人物の顔を識別することができます。また、文書の類似性検索では、文書を埋め込みベクトルに変換し、ベクトル間の距離を計算して類似した文書を検索することができます。 埋め込みデータベースは、高速な検索やクエリ処理を実現するために最適化されています。特に、近傍探索(Nearest Neighbor Search)などの高度な検索アルゴリズムが使用され、大規模なデータセットに対しても効率的な操作が可能です。 Chromaとは Chromaはオープンソースの埋め込みデータベースです。Chromaは、知識、事実、スキルをLLM(Language Model)にプラグイン可能にすることで、LLMアプリケーションの構築を容易にします。… 記事を読む

  • LangChainとは

    LangChainとは LangChainは2022年にリリースされたライブラリになるのでChatGPTに聞いても教えてくれません。(ChatGPTは2021年までのデータまでしか把握していません。) 以下に、なぜLangChainがChatGPTを使用するうえで重要なライブラリになるかを説明します。 LangChainは、自然言語処理(NLP)のためのライブラリとツールセットです。LangChainは、様々なNLPタスクにおいて効率的かつ柔軟な開発を支援するために設計されています。 LangChainの主な機能とコンポーネントには以下があります: LangChainはこれらのコンポーネントを組み合わせて使用することで、自然言語処理のさまざまなタスクを効率的に実行することができます。 つまり、我々が提供するデータからChatGPTを使ってユーザーと対話側のコミュニケーションが取れるアプリケーションが作成できるライブラリになります。 PythonとJavaScript LangChainはPythonとJavaScriptの両方で使用することができます。PythonライブラリはこのGitHubリポを参照してください。JavaScriptGitHubリポはこちらから確認してください。 LangChainが正しい回答をクエリする流れ… 記事を読む

  • Pineconeとは

    Pineconeとは Pineconeは、機械学習のための高速でスケーラブルなベクトル検索エンジンです。ベクトル検索は、ベクトル表現でデータを表現し、ベクトル間の類似性を計算してデータを検索する技術です。 Pineconeは、大量のベクトルデータをリアルタイムで高速に検索することを目的としています。これには、機械学習モデルの埋め込み表現や特徴ベクトルなどのデータを含めることができます。例えば、製品の特徴ベクトルや顧客のプロファイルをPineconeに格納し、似たような製品や顧客を見つけるためにクエリを実行することができます。 Pineconeは、高速な類似性検索とスケーラビリティに優れており、リアルタイムのアプリケーションやサービスでの利用に適しています。また、Pineconeはクラウドベースのサービスとして提供されており、簡単に統合して利用することができます。 Pineconeは、機械学習エンジニアやデータサイエンティストが類似性検索やパターンマッチングを効率的に行うためのツールとして利用されています。また、個別のユースケースに応じて、推薦システム、自然言語処理、コンピュータビジョンなど、さまざまな分野で利用されています。 Pineconeの開発者 Pineconeは、アメリカの企業であるOpenAIによって開発されました。OpenAIは、人工知能(AI)の研究と開発を行う非営利団体および企業であり、AI技術の発展と普及に取り組んでいます。OpenAIは、GPT-3やGPT-3.5などの有名なAIモデルを開発したことでも知られています。 Pineconeは、OpenAIが開発したベクトル検索エンジンであり、その目的は高速かつ効率的なベクトルデータの検索と類似性の計算です。OpenAIは、Pineconeを利用することで、機械学習エンジニアやデータサイエンティストがリアルタイムで大規模なベクトルデータを処理し、高度な類似性検索やパターンマッチングを実現できるようにしました。 Vector Databaseとは… 記事を読む

  • 【JavaScript】Web Speech APIでテキストを音声にする

    前回の記事の続きです。 では前回のコードに下記の様に音声をテキストに変換したあとに読み上げる機能を追加します。 追加された部分は次のとおりです: この部分では、style.css ファイルをインポートし、#app セレクターに対してHTMLコンテンツを設定しています。具体的には、ボタン、見出し、結果表示用の <div> 要素を含むHTMLを動的に生成しています。 この関数は、音声認識を停止するために recognition… 記事を読む

  • 【JavaScript】Web Speech APIを使ってみよう

    Web Speech APIとは Web Speech APIは、Webブラウザで音声認識や音声合成を実現するためのAPIです。このAPIを使用することで、ユーザーの音声を認識してテキストに変換したり、テキストを音声に変換して再生したりすることができます。 Web Speech APIには2つの主要な機能があります。 Web… 記事を読む

  • 【acorn.jsとVanilla JS】JavaScriptでキーワード(予約語)だけを出力する方法

    自分でコードをパース(読み取り)してJavaScriptのメソッドや予約語が使われているか知りたいときに下記のコードを使う事ができるので紹介します。 ライブラリを使わずに予約語を出力する JavaScriptのコードをパースしてキーワードを配列に出力する際に外部のライブラリを使用せずに行いたい場合は、以下のようなアプローチを取ることができます。 下記はファンクションベースで書いた場合です。 上記のコードでは、予約語(キーワード)のリストを用意し、与えられたコードをスペースと特定の記号((、)、{、}、;、,)で分割します。分割されたトークンをループして、予約語のリストに含まれるかどうかをチェックし、キーワードとして抽出します。 同じことをクラスベースで書いた場合はこのようになります。 上記のコードでは、KeywordExtractorというクラスを作成し、コンストラクタで与えられたコードとキーワードのリストをプロパティとして保持します。また、extractKeywordsメソッドを定義してキーワードの抽出処理を実装します。 KeywordExtractorクラスのインスタンスを作成し、extractKeywordsメソッドを呼び出すことでキーワードを抽出できます。 ただし、この方法は単純な文字列マッチングを行っており、コードの文脈によって誤検出する可能性があります。言語の構文やコメントなども考慮する場合には、パーサーライブラリの使用が推奨されます。 Acorn.jsとは… 記事を読む

  • 【React・Vue】Ionicでモバイルアプリを作ろう

    Ionicの特徴について説明しているので先に前回の記事を読んでおいてください。 また、今回の記事はVueフレームワークの基本が理解できている前提で説明します。 今日の目的 Ionicを使用してデモプロジェクトの作成しiOSとAndroidのネイティブアプリにコンパイルしてみます。 今日はVueを使って紹介しますがReactやAngularも同じ要領でできます。 Ionic Vue概要 @ionic/vueは、Vue開発者向けに調整されたツールとAPIを組み合わせた、コアIonic Frameworkのエクスペリエンスを提供します。 Vueバージョンのサポート… 記事を読む