人工知能の世界を探る: インテリジェントな質問応答システムの構築 - 環境

人工知能の世界を探る: インテリジェントな質問応答システムの構築 - 環境

導入

前回の記事では、プロジェクトに必要な知識のポイントについて簡単に説明しました。今日は、プロジェクト全体の環境設定を開始します。以下の記事では、プロジェクトをスムーズに進めるために、プロジェクトに必要なさまざまなツールや環境をどのように設定すればよいかを詳しく紹介します。

展開する

次に、環境変数が有効になるように、コンピューターを数回再起動する必要がある場合があります。これは、開発を進める前に環境が正しく設定されていることを確認する必要があるため必要です。

パイソン

Python の最新バージョン (3.10.*) は、公式 Web サイトのダウンロード ページから入手できます: https://www.python.org/downloads/windows/

ダウンロードが完了したら、デフォルト設定に従って「次へ」をクリックしてインストールを続行できます。すぐにコンピューターを再起動したくない場合は、Docker Desktop のインストールを続行できます。

写真

Docker デスクトップ

Docker Desktop は、Windows 上で実行され、Docker コンテナをより便利に管理および実行できるビジュアル ツールです。 Docker をインストールする目的は、開発とテストを改善するためにデータベース環境を独立して実行することです。

Docker Desktop のダウンロード アドレスは、公式 Web サイトにあります: https://docs.docker.com/desktop/install/windows-install/

このページでは、Docker Desktop for Windows のインストール ファイルを見つけることができます。ダウンロードが完了したら、インストール ウィザードの手順に従ってインストールできます。

インストールが完了すると、Docker Desktop を使用してコンテナを作成、起動、停止したり、ネットワークやストレージなどのコンテナ設定を管理したりできるようになります。 Docker コンテナ内でデータベース環境を個別に実行することで、データベースをより適切に分離して管理できるようになり、開発プロセスの効率と信頼性が向上します。

写真

インストールが完了したら、コンピューターを再起動して環境変数を有効にします。 Python および Docker 環境変数はインストール プロセス中に自動的に設定されるため、手動で設定する必要はありません。したがって、これらの環境変数を有効にするには、コンピューターを再起動するだけです。再起動後、Python と Docker の使用を開始できます。

ビジュアルスタジオコード

Visual Studio Code は、Windows、macOS、Linux オペレーティング システム用の無料のソース コード エディターです。さまざまなプログラミング言語やテクノロジーの開発に広く使用されている、軽量でありながら強力なツールです。

公式ダウンロードアドレス: https://code.visualstudio.com/Download

写真

ps: まず、効率を向上させるインテリジェントな AI プログラミング機能を備えているため、カーソルを開発に使用してみようと思いました。しかし、開発コンテナを起動すると、何度も検索しても解決策が見つからない一連のエラーが発生しました。そのため、カーソルの使用を断念することにしました。

Baidu パドルパドル

これで、前回の記事で作成したディレクトリとファイルに基づいて開発環境のインストールを開始できます。 Baidu PaddlePaddle プラットフォームには開発環境がプリインストールされており、すぐに開発を開始できると考える学生もいるかもしれませんが、簡単な演習を行うだけであれば問題ありませんが、個人または企業レベルの開発プロジェクトの場合は、通常、ローカルで開発して展開する必要があります。それで、もっと複雑な方法で説明しようと思います。 Baidu PaddlePaddle プラットフォームに興味がある場合は、試してみることもできます。迅速な開発のための詳細なドキュメントが提供されているため、ここでは説明しません。

Baidu PaddlePaddleプラットフォームの公式アドレスはhttps://aistudio.baidu.com/indexです。

写真

cmd コマンドラインで docker version コマンドを使用すると、コンソールに対応する出力が表示されます。これは、データベース コンテナの公開を開始できることを意味します。

写真

ご興味がございましたら、公式の迅速な開発例もご覧ください。詳細については、公式ウェブサイトをご覧ください: https://milvus.io/

公式の設定ファイルを私たちの設定ファイルに取り込んだので、公式の例を再度確認する必要はありません。さらに、構成ファイルには独自のコンテナも含まれています。今後は、開発したプログラムを他のコンポーネントが呼び出すためのインターフェースとして使用する予定なので、まずはこの部分の作業を完了しました。

設定ファイル

以下はdocker-compose.yamlの設定ファイルです。

 version: '3' services: xiaoyu-chat: build: context: . dockerfile: Dockerfile target: ${TARGET:-dev} # Default value is "dev" args: - MAKE=${MAKE} environment: - OPENAI_API_KEY=${OPENAI_API_KEY} etcd: container_name: milvus-etcd image: quay.io/coreos/etcd:v3.5.0 environment: - ETCD_AUTO_COMPACTION_MODE=revision - ETCD_AUTO_COMPACTION_RETENTION=1000 - ETCD_QUOTA_BACKEND_BYTES=4294967296 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd minio: container_name: milvus-minio image: minio/minio:RELEASE.2020-12-03T00-03-10Z environment: MINIO_ACCESS_KEY: minioadmin MINIO_SECRET_KEY: minioadmin volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data command: minio server /minio_data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 standalone: container_name: milvus-standalone image: milvusdb/milvus:v2.3.2 command: ["milvus", "run", "standalone"] environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus ports: - "19530:19530" depends_on: - "etcd" - "minio" networks: default: name: milvus

以下が Dockerfile です。特に業務コードは書いていないので、最後の行はファイルを実行せずに空のコンテナを作成するだけです。完了したら、この行を実際の実行コマンドに置き換えてください。

 FROM python:3.10 as base WORKDIR /app # setup code COPY . . RUN pip install -i https://mirrors.aliyun.com/pypi/simple/ poetry==1.4.2 # Install dependencies using Poetry RUN poetry config virtualenvs.create true && \ poetry install --no-interaction --no-ansi # image to dev FROM base as dev CMD sh -c "while sleep 1000; do :; done"

以下はpyproject.tomlの設定ファイルです。

 [tool.poetry] name = "xiaoyu-chat" version = "0.1.0" description = "AI QA" authors = ["xiaoyu"] [tool.poetry.dependencies] python = "^3.10, <3.11" fastapi = "^0.104.1" ipykernel = "^6.26.0" langchain = "^0.0.326" openai = "^0.28.1" [[tool.poetry.source]] name = "aliyun" url = "https://mirrors.aliyun.com/pypi/simple/" default = true secondary = false

Git を使用する場合は、次のような .gitignore ファイルを既に作成してあります。

 # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] *$py.class # C extensions *.so volumes/ # Distribution / packaging .Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ *.egg-info/ .installed.cfg *.egg MANIFEST # PyInstaller # Usually these files are written by a python script from a template # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec # Installer logs pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports htmlcov/ .tox/ .nox/ .coverage .coverage.* .cache nosetests.xml coverage.xml *.cover *.py,cover .hypothesis/ .pytest_cache/ cover/ # Translations *.mo *.pot # Django stuff: *.log local_settings.py db.sqlite3 db.sqlite3-journal # Flask stuff: instance/ .webassets-cache # Scrapy stuff: .scrapy # Sphinx documentation docs/_build/ # PyBuilder .pybuilder/ target/ # Jupyter Notebook .ipynb_checkpoints # IPython profile_default/ ipython_config.py # pyenv # For a library or package, you might want to ignore these files since the code is # intended to run in multiple environments; otherwise, check them in: # .python-version # pipenv # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. # However, in case of collaboration, if having platform-specific dependencies or dependencies # having no cross-platform support, pipenv may install dependencies that don't work, or not # install all needed dependencies. #Pipfile.lock # poetry # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. # This is especially recommended for binary packages to ensure reproducibility, and is more # commonly ignored for libraries. # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control #poetry.lock # PEP 582; used by eg github.com/David-OConnor/pyflow __pypackages__/ # Celery stuff celerybeat-schedule celerybeat.pid # SageMath parsed files *.sage.py # Environments .env .venv env/ venv/ ENV/ env.bak/ venv.bak/ # Spyder project settings .spyderproject .spyproject # Rope project settings .ropeproject # mkdocs documentation /site # mypy .mypy_cache/ .dmypy.json dmypy.json # Pyre type checker .pyre/ # pytype static type analyzer .pytype/ # Cython debug symbols cython_debug/ # PyCharm # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/

最後に残っているのは環境変数 env ファイルですが、これは非常にシンプルです。 OpenAIを呼び出すにはキーを設定する必要があります。取得方法が分からない場合は、以前公式アカウントで公開した記事を参照してください。

 OPENAI_API_KEY='sk-UvHNty93g44iGO1ydfgNT12lbkFJYK6WqgOTxjtIIL6xxxd9'

とても良い!環境設定が完了したので、VS Code に Dev Container プラグインをインストールできます。 Dev Container プラグインを使用せずにコンテナをオーケストレーションすることも、Docker コマンドを使用して直接操作することもできます。ただし、Dev Container プラグインを使用すると、コンテナ内のコードや環境などを直接操作できます。

以下は devcontainers.json 構成ファイルの内容です。

 // For format details, see https://aka.ms/devcontainer.json. For config options, see the // README at: https://github.com/devcontainers/templates/tree/main/src/python { // Use 'forwardPorts' to make a list of ports inside the container available locally. // "forwardPorts": [], // Use 'postCreateCommand' to run commands after the container is created. // "postCreateCommand": "pip3 install --user -r requirements.txt", // Configure tool-specific properties. // "customizations": {}, // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. // "remoteUser": "root" "dockerComposeFile": "../docker-compose.yaml", "service": "xiaoyu-chat", "workspaceFolder": "/app", "customizations": { "vscode": { "extensions": [ "ms-python.python", "ms-python.vscode-pylance", "ms-toolsai.jupyter" ] } }, "forwardPorts": [3000,4444,7900,5900], "shutdownAction": "stopCompose" }

ここで、Ctrl + Shift + P ショートカットを使用してコマンド パレットを開き、「コンテナーで再度開く」コマンドを選択して Dev コンテナーを起動すると、コンテナーのオーケストレーションが開始されます。コンテナが起動するまでしばらくお待ちください。

起動したコンテナでは、コンソールを追加してコンテナ内に直接アクセスし、環境を変更できます。これにより、コンテナ環境を簡単に調整および構成できます。

写真

下の画像には 2 つのコマンドが表示されています。最初のコマンドはコンテナに入るために使用され、2 番目のコマンドはコンテナから出るために使用されます。

写真

この時点で、Docker Desktop の実行状況を確認して、そのステータスとパフォーマンスを把握できます。今後は、Dev コンテナに入るかどうかに関係なく、データベース サービスを開始するのと同じくらい簡単に、コンテナを直接実行できるようになります。これにより、Docker コンテナをより便利に管理および使用できるようになります。

写真

要約する

上記の手順を経て、私たちのプロジェクトは正常に開始されました。明日の記事では、コード例を順に説明し、プロセス全体の使用方法を説明します。これらのコード例を通じて、プロジェクトの具体的な実装の詳細を深く理解し、実際のプロジェクトでこれらのツールと環境を使用する方法を学びます。

<<:  OpenAI の Whisper モデルを使用して音声をテキストに変換する

>>:  人工知能は製造業の未来をどのように変えるのでしょうか?

ブログ    
ブログ    
ブログ    

推薦する

2021年の人工知能分野の技術開発の概要

本稿では、海外の人工知能分野の科学技術発展の現状を調査し、その発展動向を判断するために、2021年の...

注目メカニズムに基づく人工知能アルゴリズム単一画像超解像法は、質感と滑らかさを区別します

人工知能アルゴリズムによる注目ベースの単一画像超解像法は、テクスチャと滑らかさを区別します。概要: ...

...

...

上位 10 の古典的なソート アルゴリズムの概要 (Java コード実装を含む)

最近、ソートアルゴリズムを勉強していて、多くのブログを読んでいます。インターネット上のいくつかの記事...

データ センターは生成 AI に対応できる準備ができていますか?

プロンプトに応じてテキスト、画像、その他のコンテンツを生成できる生成型人工知能 (AI) の企業導...

言語間、人間の声と犬の鳴き声の相互変換をサポートし、最も近いものだけを使用するシンプルな音声変換モデルはどれほど素晴らしいか

AIが関わる音声の世界はまさに魔法のようです。ある人の声を別の人の声に置き換えるだけでなく、動物と声...

2021年にはAI機能を導入する企業がますます増える

[[360047]]今年、ほとんどの企業は、新型コロナウイルス感染症による混乱に対処し、リモートワー...

AIの将来にとって人間の関与が重要な理由

人工知能技術の進歩は、自動化と革新の新しい時代の到来を告げるものとなるでしょう。しかし、機械知能の進...

感じてください:XiaoIce、XiaoAi、Xiaodu、LingyuanがAIサミットのテーマソングを共同で歌いました

7月9日、 2020年世界人工知能大会クラウドサミットのテーマソング「スマートコネクテッドホーム」が...

天津市が顔認証訴訟で勝利、コミュニティが顔認証を唯一のアクセス手段として使用することは違法と判断

天津の不動産管理会社は、コミュニティへの出入りの唯一の方法として顔認証を使用していたとして住民から訴...

CCNP: BGP プロトコルの最適パス選択アルゴリズムの公開

これはパス ベクトル ルーティング プロトコルであり、インターネット上のどこかにあるデータにアクセス...

Googleを超えろ!世界最大の時間結晶が記録を破り、量子コンピューターが新たな奇跡を起こす

今日、タイムクリスタルは再び新しいスターを迎え、Sceinceサブマガジンに登場しました。 タイムク...