diff --git a/.github/workflows/api-tests.yml b/.github/workflows/api-tests.yml index 82cfdcea068a78..cff98db7e42b9d 100644 --- a/.github/workflows/api-tests.yml +++ b/.github/workflows/api-tests.yml @@ -14,7 +14,6 @@ concurrency: jobs: test: - name: API Tests runs-on: ubuntu-latest strategy: matrix: @@ -59,7 +58,7 @@ jobs: - name: Run Workflow run: dev/pytest/pytest_workflow.sh - - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS) + - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS, Chroma) uses: hoverkraft-tech/compose-action@v2.0.0 with: compose-file: | @@ -68,6 +67,7 @@ jobs: docker/docker-compose.milvus.yaml docker/docker-compose.pgvecto-rs.yaml docker/docker-compose.pgvector.yaml + docker/docker-compose.chroma.yaml services: | weaviate qdrant @@ -76,6 +76,82 @@ jobs: milvus-standalone pgvecto-rs pgvector + chroma - name: Test Vector Stores run: dev/pytest/pytest_vdb.sh + + test-in-poetry: + name: API Tests + runs-on: ubuntu-latest + strategy: + matrix: + python-version: + - "3.10" + - "3.11" + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Poetry + uses: abatilo/actions-poetry@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'poetry' + cache-dependency-path: | + api/pyproject.toml + api/poetry.lock + + - name: Poetry check + run: poetry check -C api + + - name: Install dependencies + run: poetry install -C api --with dev + + - name: Run Unit tests + run: poetry run -C api bash dev/pytest/pytest_unit_tests.sh + + - name: Run ModelRuntime + run: poetry run -C api bash dev/pytest/pytest_model_runtime.sh + + - name: Run Tool + run: poetry run -C api bash dev/pytest/pytest_tools.sh + + - name: Set up Sandbox + uses: hoverkraft-tech/compose-action@v2.0.0 + with: + compose-file: | + docker/docker-compose.middleware.yaml + services: | + sandbox + ssrf_proxy + + - name: Run Workflow + run: poetry run -C api bash dev/pytest/pytest_workflow.sh + + - name: Set up Vector Stores (Weaviate, Qdrant, PGVector, Milvus, PgVecto-RS, Chroma) + uses: hoverkraft-tech/compose-action@v2.0.0 + with: + compose-file: | + docker/docker-compose.middleware.yaml + docker/docker-compose.qdrant.yaml + docker/docker-compose.milvus.yaml + docker/docker-compose.pgvecto-rs.yaml + docker/docker-compose.pgvector.yaml + docker/docker-compose.chroma.yaml + services: | + weaviate + qdrant + etcd + minio + milvus-standalone + pgvecto-rs + pgvector + chroma + + - name: Test Vector Stores + run: poetry run -C api bash dev/pytest/pytest_vdb.sh diff --git a/.github/workflows/db-migration-test.yml b/.github/workflows/db-migration-test.yml index cb8dd06c5e2ecf..2f059bea9d7aae 100644 --- a/.github/workflows/db-migration-test.yml +++ b/.github/workflows/db-migration-test.yml @@ -23,16 +23,20 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Install Poetry + uses: abatilo/actions-poetry@v3 + - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: 'pip' + cache: 'poetry' cache-dependency-path: | - ./api/requirements.txt + api/pyproject.toml + api/poetry.lock - name: Install dependencies - run: pip install -r ./api/requirements.txt + run: poetry install -C api - name: Set up Middleware uses: hoverkraft-tech/compose-action@v2.0.0 @@ -50,4 +54,4 @@ jobs: - name: Run DB Migration run: | cd api - flask db upgrade + poetry run python -m flask db upgrade diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index 7dad707fea1d72..160641fdf0bc0d 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -24,6 +24,9 @@ jobs: with: files: api/** + - name: Install Poetry + uses: abatilo/actions-poetry@v3 + - name: Set up Python uses: actions/setup-python@v5 if: steps.changed-files.outputs.any_changed == 'true' @@ -32,15 +35,15 @@ jobs: - name: Python dependencies if: steps.changed-files.outputs.any_changed == 'true' - run: pip install ruff dotenv-linter + run: poetry install -C api --only lint - name: Ruff check if: steps.changed-files.outputs.any_changed == 'true' - run: ruff check --preview ./api + run: poetry run -C api ruff check --preview ./api - name: Dotenv check if: steps.changed-files.outputs.any_changed == 'true' - run: dotenv-linter ./api/.env.example ./web/.env.example + run: poetry run -C api dotenv-linter ./api/.env.example ./web/.env.example - name: Lint hints if: failure() diff --git a/.gitignore b/.gitignore index a51465efbc7fa6..35507f4783b6c2 100644 --- a/.gitignore +++ b/.gitignore @@ -149,6 +149,7 @@ docker/volumes/qdrant/* docker/volumes/etcd/* docker/volumes/minio/* docker/volumes/milvus/* +docker/volumes/chroma/* sdks/python-client/build sdks/python-client/dist diff --git a/CONTRIBUTING_JA.md b/CONTRIBUTING_JA.md index c9329d610230f4..e8f5456a3c44b7 100644 --- a/CONTRIBUTING_JA.md +++ b/CONTRIBUTING_JA.md @@ -4,7 +4,7 @@ Dify にコントリビュートしたいとお考えなのですね。それは 私たちは現状を鑑み、機敏かつ迅速に開発をする必要がありますが、同時にあなたのようなコントリビューターの方々に、可能な限りスムーズな貢献体験をしていただきたいと思っています。そのためにこのコントリビュートガイドを作成しました。 コードベースやコントリビュータの方々と私たちがどのように仕事をしているのかに慣れていただき、楽しいパートにすぐに飛び込めるようにすることが目的です。 -このガイドは Dify そのものと同様に、継続的に改善されています。実際のプロジェクトに遅れをとることがあるかもしれませんが、ご理解をお願いします。 +このガイドは Dify そのものと同様に、継続的に改善されています。実際のプロジェクトに遅れをとることがあるかもしれませんが、ご理解のほどよろしくお願いいたします。 ライセンスに関しては、私たちの短い[ライセンスおよびコントリビューター規約](./LICENSE)をお読みください。また、コミュニティは[行動規範](https://github.com/langgenius/.github/blob/main/CODE_OF_CONDUCT.md)を遵守しています。 @@ -14,7 +14,7 @@ Dify にコントリビュートしたいとお考えなのですね。それは ### 機能リクエスト -* 新しい機能要望を出す場合は、提案する機能が何を実現するものなのかを説明し、可能な限り多くの文脈を含めてください。[@perzeusss](https://github.com/perzeuss)は、あなたの要望を書き出すのに役立つ [Feature Request Copilot](https://udify.app/chat/MK2kVSnw1gakVwMX) を作ってくれました。気軽に試してみてください。 +* 新しい機能要望を出す場合は、提案する機能が何を実現するものなのかを説明し、可能な限り多くのコンテキストを含めてください。[@perzeusss](https://github.com/perzeuss)は、あなたの要望を書き出すのに役立つ [Feature Request Copilot](https://udify.app/chat/MK2kVSnw1gakVwMX) を作ってくれました。気軽に試してみてください。 * 既存の課題から 1 つ選びたい場合は、その下にコメントを書いてください。 @@ -54,7 +54,7 @@ Dify にコントリビュートしたいとお考えなのですね。それは ## インストール -Dify を開発用にセットアップする手順は以下の通りです。 +以下の手順で 、Difyのセットアップをしてください。 ### 1. このリポジトリをフォークする @@ -120,7 +120,7 @@ Dify のバックエンドは[Flask](https://flask.palletsprojects.com/en/3.0.x/ ### フロントエンド -このウェブサイトは、Typescript の[Next.js](https://nextjs.org/)ボイラープレートでブートストラップされており、スタイリングには[Tailwind CSS](https://tailwindcss.com/)を使用しています。国際化には[React-i18next](https://react.i18next.com/)を使用しています。 +このウェブサイトは、Typescriptベースの[Next.js](https://nextjs.org/)テンプレートを使ってブートストラップされ、[Tailwind CSS](https://tailwindcss.com/)を使ってスタイリングされています。国際化には[React-i18next](https://react.i18next.com/)を使用しています。 ``` [web/] diff --git a/README.md b/README.md index c43b52d7ad27ce..d81e5c76720078 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,7 @@ +
diff --git a/README_AR.md b/README_AR.md new file mode 100644 index 00000000000000..9716346fd2b313 --- /dev/null +++ b/README_AR.md @@ -0,0 +1,225 @@ +![cover-v5-optimized](https://github.com/langgenius/dify/assets/13230914/f9e19af5-61ba-4119-b926-d10c4c06ebab) + ++ Dify Cloud · + الاستضافة الذاتية · + التوثيق · + استفسارات الشركات +
+ ++ + + + + + + + + + + + + + + + +
+ + + +الميزة | +Dify.AI | +LangChain | +Flowise | +OpenAI Assistants API | +
---|---|---|---|---|
نهج البرمجة | +موجّه لـ تطبيق + واجهة برمجة تطبيق (API) | +برمجة Python | +موجه لتطبيق | +واجهة برمجة تطبيق (API) | +
LLMs المدعومة | +تنوع غني | +تنوع غني | +تنوع غني | +فقط OpenAI | +
محرك RAG | +✅ | +✅ | +✅ | +✅ | +
الوكيل | +✅ | +✅ | +❌ | +✅ | +
سير العمل | +✅ | +❌ | +✅ | +❌ | +
الملاحظة | +✅ | +✅ | +❌ | +❌ | +
ميزات الشركات (SSO / مراقبة الوصول) | +✅ | +❌ | +❌ | +❌ | +
نشر محلي | +✅ | +✅ | +✅ | +❌ | +
نقطة الاتصال | +الغرض | +
---|---|
+ | استفسارات الأعمال واقتراحات حول المنتج | +
+ | المساهمات والمشكلات وطلبات الميزات | +
Dify Cloud · - セルフホスト · + セルフホスティング · ドキュメント · - デモのスケジュール + デモの予約
-DifyはオープンソースのLLMアプリケーション開発プラットフォームです。直感的なインターフェースには、AIワークフロー、RAGパイプライン、エージェント機能、モデル管理、観測機能などが組み合わさっており、プロトタイプから本番までの移行を迅速に行うことができます。以下は、主要機能のリストです: +DifyはオープンソースのLLMアプリケーション開発プラットフォームです。直感的なインターフェイスには、AIワークフロー、RAGパイプライン、エージェント機能、モデル管理、観測機能などが組み合わさっており、プロトタイプから生産まで迅速に進めることができます。以下の機能が含まれます: **1. ワークフロー**: - ビジュアルキャンバス上で強力なAIワークフローを構築してテストし、以下の機能を活用してプロトタイプを超えることができます。 + 強力なAIワークフローをビジュアルキャンバス上で構築し、テストできます。すべての機能、および以下の機能を使用できます。 https://github.com/langgenius/dify/assets/13230914/356df23e-1604-483d-80a6-9517ece318aa -**2. 包括的なモデルサポート**: - 数百のプロプライエタリ/オープンソースのLLMと、数十の推論プロバイダーおよびセルフホスティングソリューションとのシームレスな統合を提供します。GPT、Mistral、Llama3、およびOpenAI API互換のモデルをカバーします。サポートされているモデルプロバイダーの完全なリストは[こちら](https://docs.dify.ai/getting-started/readme/model-providers)をご覧ください。 +**2. 総合的なモデルサポート**: + 数百ものプロプライエタリ/オープンソースのLLMと、数十もの推論プロバイダーおよびセルフホスティングソリューションとのシームレスな統合を提供します。GPT、Mistral、Llama3、OpenAI APIと互換性のあるすべてのモデルを統合されています。サポートされているモデルプロバイダーの完全なリストは[こちら](https://docs.dify.ai/getting-started/readme/model-providers)をご覧ください。 ![providers-v5](https://github.com/langgenius/dify/assets/13230914/5a17bdbe-097a-4100-8363-40255b70f6e3) **3. プロンプトIDE**: - チャットベースのアプリにテキスト読み上げなどの追加機能を追加するプロンプトを作成し、モデルのパフォーマンスを比較する直感的なインターフェース。 + プロンプトの作成、モデルパフォーマンスの比較が行え、チャットベースのアプリに音声合成などの機能も追加できます。 **4. RAGパイプライン**: - 文書の取り込みから取得までをカバーする幅広いRAG機能で、PDF、PPTなどの一般的なドキュメント形式からのテキスト抽出に対するアウトオブボックスのサポートを提供します。 + ドキュメントの取り込みから検索までをカバーする広範なRAG機能ができます。ほかにもPDF、PPT、その他の一般的なドキュメントフォーマットからのテキスト抽出のサーポイントも提供します。 **5. エージェント機能**: - LLM関数呼び出しまたはReActに基づいてエージェントを定義し、エージェント向けの事前構築済みまたはカスタムのツールを追加できます。Difyには、Google検索、DELL·E、Stable Diffusion、WolframAlphaなどのAIエージェント用の50以上の組み込みツールが用意されています。 + LLM Function CallingやReActに基づくエージェントの定義が可能で、AIエージェント用のプリビルトまたはカスタムツールを追加できます。Difyには、Google検索、DELL·E、Stable Diffusion、WolframAlphaなどのAIエージェント用の50以上の組み込みツールが提供します。 **6. LLMOps**: - アプリケーションログとパフォーマンスを時間の経過とともにモニタリングおよび分析します。本番データと注釈に基づいて、プロンプト、データセット、およびモデルを継続的に改善できます。 + アプリケーションのログやパフォーマンスを監視と分析し、生産のデータと注釈に基づいて、プロンプト、データセット、モデルを継続的に改善できます。 **7. Backend-as-a-Service**: - Difyのすべての提供には、それに対応するAPIが付属しており、独自のビジネスロジックにDifyをシームレスに統合できます。 + すべての機能はAPIを提供されており、Difyを自分のビジネスロジックに簡単に統合できます。 ## 機能比較 @@ -95,9 +95,9 @@ DifyはオープンソースのLLMアプリケーション開発プラットフ