diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0b14959e..79be520b 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,7 +10,7 @@ repos: - id: check-json - id: detect-private-key - id: trailing-whitespace - exclude: (README\.md|README_ZH\.md)$ + exclude: (README\.md|README_ZH\.md|README_JP\.md)$ - id: end-of-file-fixer files: \.py$ - id: check-merge-conflict @@ -42,4 +42,4 @@ repos: [ "--ignore-words-list", "astroid,gallary,momento,narl,ot,rouge,nin,gere,asend,ans,thur", - ] \ No newline at end of file + ] diff --git a/README.md b/README.md index 30959776..d564d8d6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -English | [**中文**](./README_ZH.md) +English | [**中文**](./README_ZH.md) | [**日本語**](./README_JP.md) # MemoryScope

diff --git a/README_JP.md b/README_JP.md new file mode 100644 index 00000000..8186eb90 --- /dev/null +++ b/README_JP.md @@ -0,0 +1,121 @@ +[**English**](./README.md) | [**中文**](./README_ZH.md) | 日本語 + +# MemoryScope +

+ MemoryScopeLogo +

+あなたのLLMチャットボットに強力で柔軟な長期記憶システムを装備しましょう。 + +[![](https://img.shields.io/badge/python-3.10+-blue)](https://pypi.org/project/memoryscope/) +[![](https://img.shields.io/badge/pypi-v0.1.1.0-blue?logo=pypi)](https://pypi.org/project/memoryscope/) +[![](https://img.shields.io/badge/license-Apache--2.0-black)](./LICENSE) +[![](https://img.shields.io/badge/Docs-English%7C%E4%B8%AD%E6%96%87-blue?logo=markdown)](https://modelscope.github.io/MemoryScope/en/index.html#welcome-to-memoryscope-tutorial) +[![](https://img.shields.io/badge/Docs-API_Reference-blue?logo=markdown)](https://modelscope.github.io/MemoryScope/en/docs/api.html) +[![](https://img.shields.io/badge/Contribute-Welcome-green)](https://modelscope.github.io/MemoryScope/en/docs/contribution.html) + +---- +## 📰 ニュース + +- **[2024-09-10]** MemoryScope v0.1.1.0をリリースしました。 [PyPI](https://pypi.org/simple/memoryscope/)でも入手可能です! +---- +## 🌟 MemoryScopeとは? +MemoryScopeは、LLMチャットボットに強力で柔軟な長期記憶能力を提供し、その能力を構築するためのフレームワークを提供します。 +個人アシスタントや感情的な伴侶などのシナリオに適用でき、長期記憶を通じてユーザーの基本情報やさまざまな習慣や好みを覚え続けることができます。 +これにより、ユーザーはLLMを使用する際に徐々に「理解されている」感覚を体験することができます。 + +### デモ +

+ en_demo +

+ +### フレームワーク +

+ Framework +

+ +💾 メモリデータベース: MemoryScopeは、システム内に記録されたすべての記憶片を保存するためのベクトルデータベース(デフォルトは*ElasticSearch*)を備えています。 + +🔧 ワーカーライブラリ: MemoryScopeは、長期記憶の能力を個々のワーカーに原子化し、クエリ情報のフィルタリング、観察の抽出、洞察の更新など、20以上のワーカーを含みます。 + +🛠️ オペレーションライブラリ: ワーカーパイプラインに基づいて、メモリサービスのオペレーションを構築し、メモリの取得やメモリの統合などの主要な機能を実現します。 + +- メモリの取得: ユーザークエリが到着すると、この操作は意味的に関連する記憶片を返します。 + クエリが時間に言及している場合は、対応する時間の記憶片も返します。 +- メモリの統合: この操作は、一連のユーザークエリを受け取り、クエリから抽出された重要なユーザー情報を統合された*観察*としてメモリデータベースに保存します。 +- 反映と再統合: 定期的に、この操作は新たに記録された*観察*を反映し、*洞察*を形成および更新します。 + その後、メモリの再統合を実行して、記憶片間の矛盾や重複が適切に処理されるようにします。 + +⚙️ ベストプラクティス: + +- MemoryScopeは、長期記憶のコア機能に基づいて、長期記憶を持つ対話インターフェース(API)と長期記憶を持つコマンドライン対話の実践(CLI)を実装しています。 +- MemoryScopeは、現在人気のあるエージェントフレームワーク(AutoGen、AgentScope)を組み合わせて、ベストプラクティスを提供します。 + +### 主な特徴 + +⚡ 低い応答時間(RT): +- システム内のバックエンド操作(メモリの統合、反映と再統合)は、フロントエンド操作(メモリの取得)と分離されています。 +- バックエンド操作は通常(および推奨される)キューに入れられるか、定期的に実行されるため、システムのユーザー応答時間(RT)はフロントエンド操作のみに依存し、約500ミリ秒です。 + +🌲 階層的で一貫性のある記憶: +- システムに保存される記憶片は階層構造になっており、*洞察*は同様のテーマの*観察*の集約から得られる高レベルの情報です。 +- 記憶片間の矛盾や重複は定期的に処理され、一貫性が保たれます。 +- ユーザーの虚偽の内容はフィルタリングされ、LLMの幻覚を避けることができます。 + +⏰ 時間感覚: +- メモリの取得とメモリの統合を実行する際に時間感覚があり、クエリが時間に言及している場合に正確な関連情報を取得できます。 + +---- + +## 💼 サポートされているモデルAPI + +| バックエンド | タスク | サポートされているモデルの一部 | +|-------------------|------------|------------------------------------------------------------------------| +| openai_backend | Generation | gpt-4o, gpt-4o-mini, gpt-4, gpt-3.5-turbo | +| | Embedding | text-embedding-ada-002, text-embedding-3-large, text-embedding-3-small | +| dashscope_backend | Generation | qwen-max, qwen-plus, qwen-plus, qwen2-72b-instruct | +| | Embedding | text-embedding-v1, text-embedding-v2 | +| | Reranker | gte-rerank | + +将来的には、より多くのモデルインターフェースとローカルデプロイメントのLLMおよび埋め込みサービスをサポートする予定です。 + +## 🚀 インストール +インストール方法については、[Installation.md](docs/installation.md)を参照してください。 + +## 🍕 クイックスタート +- [簡単な使用法(クイックスタート)](./examples/api/simple_usages.ipynb) +- [AutoGenとの連携](./examples/api/autogen_example.md) +- [MemoryScopeチャットボットとのCLI](./examples/cli/README.md) +- [高度なカスタマイズ](./examples/advance/custom_operator.md) + +## 💡 貢献 + +貢献は常に奨励されています! + +プルリクエストをコミットする前に、このリポジトリにpre-commitフックをインストールすることを強くお勧めします。 +これらのフックは、gitコミットを行うたびに実行される小さなハウスキーピングスクリプトであり、フォーマットとリンティングを自動的に処理します。 +```shell +pip install -e . +pre-commit install +``` + +詳細については、[貢献ガイド](./docs/contribution.md)を参照してください。 + +## 📖 引用 + +MemoryScopeを論文で使用する場合は、以下の引用を追加してください: + +``` +@software{MemoryScope, +author = {Li Yu and + Tiancheng Qin and + Qingxu Fu and + Sen Huang and + Xianzhe Xu and + Zhaoyang Liu and + Boyin Liu}, +month = {09}, +title = {{MemoryScope}}, +url = {https://github.com/modelscope/MemoryScope}, +year = {2024} +} +``` diff --git a/README_ZH.md b/README_ZH.md index ffd75531..8f2d5afb 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -1,4 +1,4 @@ -[**English**](./README.md) | 中文 +[**English**](./README.md) | 中文 | [**日本語**](./README_JP.md) # MemoryScope

diff --git a/docs/sphinx_doc/build_sphinx_doc.sh b/docs/sphinx_doc/build_sphinx_doc.sh old mode 100755 new mode 100644 index 172b0b41..cac49c49 --- a/docs/sphinx_doc/build_sphinx_doc.sh +++ b/docs/sphinx_doc/build_sphinx_doc.sh @@ -4,7 +4,7 @@ rm -rf build/html/* rm -rf en/source/memoryscope*.rst rm -rf zh/source/memoryscope*.rst - +rm -rf ja/source/memoryscope*.rst # copy related files cd ../../ @@ -21,10 +21,17 @@ cp docs/contribution_zh.md docs/sphinx_doc/zh/source/docs/contribution.md cp -r docs/images docs/sphinx_doc/zh/source/docs/images cp -r examples docs/sphinx_doc/zh/source/examples +cp README_JP.md docs/sphinx_doc/ja/source/README.md +cp docs/installation_jp.md docs/sphinx_doc/ja/source/docs/installation.md +cp docs/contribution_jp.md docs/sphinx_doc/ja/source/docs/contribution.md +cp -r docs/images docs/sphinx_doc/ja/source/docs/images +cp -r examples docs/sphinx_doc/ja/source/examples + # build cd docs/sphinx_doc sphinx-apidoc -f -o en/source ../../memoryscope -t template -e sphinx-apidoc -f -o zh/source ../../memoryscope -t template -e +sphinx-apidoc -f -o ja/source ../../memoryscope -t template -e # clear redundant files make clean all @@ -39,4 +46,10 @@ rm zh/source/README.md rm zh/source/docs/installation.md rm zh/source/docs/contribution.md rm -rf zh/source/docs/images -rm -rf zh/source/examples \ No newline at end of file +rm -rf zh/source/examples + +rm ja/source/README.md +rm ja/source/docs/installation.md +rm ja/source/docs/contribution.md +rm -rf ja/source/docs/images +rm -rf ja/source/examples diff --git a/docs/sphinx_doc/ja/source/index.rst b/docs/sphinx_doc/ja/source/index.rst new file mode 100644 index 00000000..50cee814 --- /dev/null +++ b/docs/sphinx_doc/ja/source/index.rst @@ -0,0 +1,55 @@ +.. MemoryScope documentation master file, created by + sphinx-quickstart on Fri Jan 5 17:53:54 2024. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +:github_url: https://github.com/modelscope/memoryscope + +MemoryScope ドキュメント +========================= + +MemoryScopeに関するドキュメントへようこそ +------------------------------- + +.. image:: ./docs/images/logo.png + :align: center + +MemoryScopeは、LLMチャットボットに強力で柔軟な長期記憶能力を提供し、長期記憶能力を構築するためのフレームワークを提供します。 +MemoryScopeは、個人アシスタントや感情的な伴侶などの記憶シナリオに使用でき、長期記憶能力を通じてユーザーの基本情報やさまざまな習慣や好みを覚え続けることができます。 +これにより、ユーザーはLLMを使用する際に徐々に「理解されている」感覚を体験することができます。 + +.. image:: docs/images/framework.png + :align: center + +フレームワーク +^^^^^^^^^^^^^^^^^^^^ + +💾 メモリデータベース: MemoryScopeは、システム内に記録されたすべての記憶片を保存するためのベクトルデータベース(デフォルトは*ElasticSearch*)を備えています。 + +🔧 ワーカーライブラリ: MemoryScopeは、長期記憶の能力を個々のワーカーに原子化し、クエリ情報のフィルタリング、観察の抽出、洞察の更新など、20以上のワーカーを含みます。 + +🛠️ オペレーションライブラリ: ワーカーパイプラインに基づいて、メモリサービスのオペレーションを構築し、メモリの取得やメモリの統合などの主要な機能を実現します。 + +- メモリの取得: ユーザークエリが到着すると、この操作は意味的に関連する記憶片を返します。 + クエリが時間に言及している場合は、対応する時間の記憶片も返します。 +- メモリの統合: この操作は、一連のユーザークエリを受け取り、クエリから抽出された重要なユーザー情報を統合された*観察*としてメモリデータベースに保存します。 +- 反映と再統合: 定期的に、この操作は新たに記録された*観察*を反映し、*洞察*を形成および更新します。 + その後、メモリの再統合を実行して、記憶片間の矛盾や重複が適切に処理されるようにします。 + +.. toctree:: + :maxdepth: 2 + :caption: MemoryScope チュートリアル + + MemoryScopeについて + インストール + CLIクライアント + 簡単な使用法 + 高度な使用法 + 貢献 + + +.. toctree:: + :maxdepth: 6 + :caption: MemoryScope APIリファレンス + + API