Skip to content

Commit d8616e2

Browse files
committed
Merge branch 'dev' into feat/mos-product-api-0716
2 parents 13639a3 + 727dc18 commit d8616e2

File tree

95 files changed

+8182
-1432
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+8182
-1432
lines changed
Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,64 @@
1-
name: "\U0001F41B Bug / help"
2-
description: Create a report to help us improve MemOS
1+
name: "\U0001F41B Bug Report"
2+
description: Report a bug to help us improve MemOS | 报告错误以帮助我们改进 MemOS
3+
title: "fix: "
34
labels: ["bug", "pending"]
45
body:
56

7+
- type: checkboxes
8+
id: checklist
9+
attributes:
10+
label: Pre-submission checklist | 提交前检查
11+
options:
12+
- label: I have searched existing issues and this hasn't been mentioned before | 我已搜索现有问题,确认此问题尚未被提及
13+
required: true
14+
- label: I have read the project documentation and confirmed this issue doesn't already exist | 我已阅读项目文档并确认此问题尚未存在
15+
required: true
16+
- label: This issue is specific to MemOS and not a general software issue | 该问题是针对 MemOS 的,而不是一般软件问题
17+
required: true
18+
619
- type: textarea
7-
id: system-info
20+
id: description
21+
attributes:
22+
label: "Bug Description | 问题描述"
23+
placeholder: "Describe what happened and what you expected to happen"
824
validations:
925
required: true
10-
attributes:
11-
label: System Info
12-
description: |
13-
Please share your system info with us. You can run the command **pip show MemoryOS** and copy-paste its output below.
14-
请提供您的系统信息。您可以在命令行运行 **pip show MemoryOS** 并将其输出复制到该文本框中。
15-
16-
placeholder: MemoryOS version, platform, python version, ...
1726

1827
- type: textarea
1928
id: reproduction
29+
attributes:
30+
label: "How to Reproduce | 如何重现"
31+
placeholder: |
32+
1. Import/run '...'
33+
2. Call function '...'
34+
3. See error
2035
validations:
2136
required: true
22-
attributes:
23-
label: Reproduction
24-
description: |
25-
Please provide entry arguments, error messages and stack traces that reproduces the problem.
26-
请提供入口参数,错误日志以及异常堆栈以便于我们复现问题。
2737

28-
value: |
29-
```text
30-
Put your message here.
31-
```
38+
- type: textarea
39+
id: environment
40+
attributes:
41+
label: "Environment | 环境信息"
42+
placeholder: |
43+
- Python version:
44+
- Operating System:
45+
- MemOS version: (run `pip show memoryos`)
46+
validations:
47+
required: true
3248

3349
- type: textarea
3450
id: others
3551
validations:
3652
required: false
3753
attributes:
38-
label: Others
54+
label: "Additional Context | 其他信息"
55+
56+
- type: checkboxes
57+
id: contribution
58+
attributes:
59+
label: Willingness to Implement | 实现意愿
60+
options:
61+
- label: I'm willing to implement this myself | 我愿意自己解决
62+
required: false
63+
- label: I would like someone else to implement this | 我希望其他人来解决
64+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: "\U0001F527 GitHub Pull Requests"
4+
url: https://github.com/MemTensor/MemOS/pulls
5+
about: Contribute code improvements via Pull Requests | 通过 Pull Requests 贡献代码改进
6+
- name: "\U0001F4AC GitHub Discussions"
7+
url: https://github.com/MemTensor/MemOS/discussions
8+
about: Participate in our GitHub Discussions to ask questions or share ideas | 加入 GitHub Discussions,提出问题或分享想法
9+
- name: "\U0001F3AE Discord Server"
10+
url: https://discord.gg/Txbx3gebZR
11+
about: Join our Discord Server for real-time community chat | 加入我们的 Discord 服务器进行实时社区聊天
12+
- name: "\U0001F4F1 WeChat Group"
13+
url: https://statics.memtensor.com.cn/memos/qr-code.png
14+
about: Scan the QR code to join our WeChat group for more discussions | 扫描二维码加入我们的微信群,进行更多讨论
Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
11
name: "\U0001F680 Feature request"
2-
description: Submit a request for a new feature
2+
description: Submit a request for a new feature | 申请添加新功能
3+
title: "feat: "
34
labels: ["enhancement", "pending"]
45
body:
6+
57
- type: checkboxes
68
id: checklist
79
attributes:
8-
label: Pre-submission checklist
10+
label: Pre-submission checklist | 提交前检查
911
options:
10-
- label: I have searched existing issues and this feature hasn't been requested before | 我已搜索现有问题,确认此功能尚未被请求
12+
- label: I have searched existing issues and this hasn't been mentioned before | 我已搜索现有问题,确认此问题尚未被提及
1113
required: true
12-
- label: I have read the project documentation and confirmed this feature doesn't already exist | 我已阅读项目文档并确认此功能尚未存在
14+
- label: I have read the project documentation and confirmed this issue doesn't already exist | 我已阅读项目文档并确认此问题尚未存在
1315
required: true
14-
- label: This feature request is specific to MemOS and not a general software issue | 该功能请求是针对 MemOS 的,而不是一般软件问题
16+
- label: This issue is specific to MemOS and not a general software issue | 该问题是针对 MemOS 的,而不是一般软件问题
1517
required: true
1618

1719
- type: textarea
1820
id: problem
1921
validations:
2022
required: true
2123
attributes:
22-
label: Problem Statement
24+
label: Problem Statement | 问题陈述
2325
placeholder: |
2426
Describe the problem you're trying to solve...
2527
Example: "As a developer using MemOS, I find it difficult to..."
2628
2729
- type: checkboxes
2830
id: contribution
2931
attributes:
30-
label: Implementation Contribution
32+
label: Willingness to Implement | 实现意愿
3133
options:
32-
- label: I'm willing to implement this feature myself | 我愿意自己实现此功能
34+
- label: I'm willing to implement this myself | 我愿意自己解决
3335
required: false
34-
- label: I would like someone else to implement this | 我希望其他人来实现此功能
36+
- label: I would like someone else to implement this | 我希望其他人来解决
3537
required: false

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,30 @@
33
<!--
44
Please include a summary of the changes below;
55
Fill in the issue number that this PR addresses (if applicable);
6+
Fill in the related MemOS-Docs repository issue or PR link (if applicable);
67
Mention the person who will review this PR (if you know who it is);
7-
Replace (summary), (issue), and (reviewer) with the appropriate information (No parentheses).
8+
Replace (summary), (issue), (docs-issue-or-pr-link), and (reviewer) with the appropriate information.
89
910
请在下方填写更改的摘要;
1011
填写此 PR 解决的问题编号(如果适用);
12+
填写相关的 MemOS-Docs 仓库 issue 或 PR 链接(如果适用);
1113
提及将审查此 PR 的人(如果您知道是谁);
12-
替换 (summary)、(issue) 和 (reviewer) 为适当的信息(不带括号)
14+
替换 (summary)、(issue)、(docs-issue-or-pr-link) 和 (reviewer) 为适当的信息。
1315
-->
1416

1517
Summary: (summary)
1618

1719
Fix: #(issue)
1820

21+
Docs Issue/PR: (docs-issue-or-pr-link)
22+
1923
Reviewer: @(reviewer)
2024

2125
## Checklist:
2226

2327
- [ ] I have performed a self-review of my own code | 我已自行检查了自己的代码
2428
- [ ] I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释
2529
- [ ] I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常
26-
- [ ] I have added necessary documentation (if applicable) | 我已添加必要的文档(如果适用)
30+
- [ ] I have created related documentation issue/PR in [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) (if applicable) | 我已在 [MemOS-Docs](https://github.com/MemTensor/MemOS-Docs) 中创建了相关的文档 issue/PR(如果适用)
2731
- [ ] I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用)
2832
- [ ] I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人

.github/workflows/python-tests.yml

Lines changed: 47 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
os:
2727
- "ubuntu-latest"
2828
- "windows-latest"
29+
- "macos-13"
2930
- "macos-14"
3031
- "macos-15"
3132
# Ref: https://docs.github.com/en/actions/how-tos/writing-workflows/choosing-where-your-workflow-runs/choosing-the-runner-for-a-job
@@ -46,13 +47,54 @@ jobs:
4647
with:
4748
python-version: ${{ matrix.python-version }}
4849
cache: 'poetry'
49-
- name: Install dependencies
50+
51+
# Dependency and building tests
52+
- name: Install main dependencies
53+
run: |
54+
poetry install --no-root --no-interaction
55+
- name: Check no top-level optional dependencies
56+
run: |
57+
poetry run python scripts/check_dependencies.py
58+
- name: Build sdist and wheel
59+
run: poetry build
60+
- name: Test wheel installation on Windows
61+
if: startsWith(matrix.os, 'windows')
62+
run: |
63+
Get-ChildItem dist/*.whl | ForEach-Object { pip install $_.FullName }
64+
pip uninstall -y memoryos
65+
- name: Test wheel installation on Linux / Mac
66+
if: ${{ !startsWith(matrix.os, 'windows') }}
67+
run: |
68+
pip install dist/*.whl
69+
pip uninstall -y memoryos
70+
- name: Test sdist installation on Windows
71+
if: startsWith(matrix.os, 'windows')
5072
run: |
51-
poetry install --no-interaction --with dev --with test
52-
- name: Test with ruff
73+
Get-ChildItem dist/*.tar.gz | ForEach-Object { pip install $_.FullName }
74+
pip uninstall -y memoryos
75+
- name: Test sdist installation on Linux / Mac
76+
if: ${{ !startsWith(matrix.os, 'windows') }}
77+
run: |
78+
pip install dist/*.tar.gz
79+
pip uninstall -y memoryos
80+
81+
# Ruff checks
82+
- name: Install test group dependencies
83+
run: |
84+
poetry install --no-interaction --with test
85+
- name: Ruff checks
5386
run: |
5487
poetry run ruff check
5588
poetry run ruff format --check
56-
- name: Test with pytest
89+
90+
# PyTest checks
91+
- name: Install all extra dependencies
92+
# macos-13 doesn't support torch==2.7.1
93+
# So, pytest won't work
94+
if: ${{ !startsWith(matrix.os, 'macos-13') }}
95+
run: |
96+
poetry install --no-interaction --extras all
97+
- name: PyTest unit tests
98+
if: ${{ !startsWith(matrix.os, 'macos-13') }}
5799
run: |
58-
poetry run pytest tests -vv
100+
poetry run pytest tests -vv --durations=10

.github/workflows/stale.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: "Mark stale issues and PRs"
2+
3+
on:
4+
schedule:
5+
- cron: '0 2 * * *' # Runs every day at 2 AM UTC
6+
7+
permissions:
8+
issues: write
9+
pull-requests: write
10+
11+
jobs:
12+
stale:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/stale@v9
16+
with:
17+
stale-issue-message: 'This issue has been automatically marked as stale due to inactivity.'
18+
stale-pr-message: 'This PR has been automatically marked as stale due to inactivity.'
19+
close-issue-message: 'This issue has been automatically closed due to inactivity.'
20+
close-pr-message: 'This PR has been automatically closed due to inactivity.'
21+
days-before-stale: 30 # Days of inactivity before marking as stale
22+
days-before-close: 7 # Days of inactivity before closing stale issues/PRs
23+
stale-issue-label: 'stale'
24+
stale-pr-label: 'stale'
25+
exempt-issue-labels: 'do not close'
26+
exempt-pr-labels: 'do not close'
27+
remove-stale-when-updated: true

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ tmp/
66
**/tmp_data/
77

88
# evaluation data
9-
evaluation/data/langmemeval
109
evaluation/*tmp/
1110
evaluation/results
1211
evaluation/.env
12+
!evaluation/configs-example/*.json
1313
evaluation/configs/*
1414
**tree_textual_memory_locomo**
1515
.env

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.PHONY: test
22

33
install:
4-
poetry install --with dev --with test
4+
poetry install --extras all --with dev --with test
55
poetry run pre-commit install --install-hooks
66

77
clean:
@@ -24,4 +24,4 @@ serve:
2424
poetry run uvicorn memos.api.start_api:app
2525

2626
openapi:
27-
poetry run python scripts/export_openapi.py --output docs/openapi.json
27+
poetry run memos export_openapi --output docs/openapi.json

README.md

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
<a href="https://pypi.org/project/MemoryOS">
1818
<img src="https://img.shields.io/pypi/pyversions/MemoryOS.svg" alt="Supported Python versions">
1919
</a>
20+
<a href="https://pypi.org/project/MemoryOS">
21+
<img src="https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey" alt="Supported Platforms">
22+
</a>
2023
<a href="https://memos-docs.openmem.net/home/overview/">
2124
<img src="https://img.shields.io/badge/Documentation-view-blue.svg" alt="Documentation">
2225
</a>
@@ -138,34 +141,37 @@ For more detailed examples, please check out the [`examples`](./examples) direct
138141

139142
## 📦 Installation
140143

141-
> [!WARNING]
142-
> MemOS is compatible with Linux, Windows, and macOS.
143-
>
144-
> However, if you're using macOS, please note that there may be dependency issues that are difficult to resolve.
145-
>
146-
> For example, compatibility with macOS 13 Ventura is currently challenging.
147-
148144
### Install via pip
149145

150146
```bash
151147
pip install MemoryOS
152148
```
153149

154-
### Development Install
150+
### Optional Dependencies
155151

156-
To contribute to MemOS, clone the repository and install it in editable mode:
152+
MemOS provides several optional dependency groups for different features. You can install them based on your needs.
153+
154+
| Feature | Package Name |
155+
| --------------------- | ------------------------- |
156+
| Tree Memory | `MemoryOS[tree-mem]` |
157+
| Memory Reader | `MemoryOS[mem-reader]` |
158+
| Memory Scheduler | `MemoryOS[mem-scheduler]` |
159+
160+
Example installation commands:
157161

158162
```bash
159-
git clone https://github.com/MemTensor/MemOS.git
160-
cd MemOS
161-
make install
163+
pip install MemoryOS[tree-mem]
164+
pip install MemoryOS[tree-mem,mem-reader]
165+
pip install MemoryOS[mem-scheduler]
166+
pip install MemoryOS[tree-mem,mem-reader,mem-scheduler]
162167
```
163168

164-
### Optional Dependencies
169+
### External Dependencies
165170

166171
#### Ollama Support
167172

168173
To use MemOS with [Ollama](https://ollama.com/), first install the Ollama CLI:
174+
169175
```bash
170176
curl -fsSL https://ollama.com/install.sh | sh
171177
```
@@ -174,6 +180,14 @@ curl -fsSL https://ollama.com/install.sh | sh
174180

175181
To use functionalities based on the `transformers` library, ensure you have [PyTorch](https://pytorch.org/get-started/locally/) installed (CUDA version recommended for GPU acceleration).
176182

183+
#### Download Examples
184+
185+
To download example code, data and configurations, run the following command:
186+
187+
```bash
188+
memos download_examples
189+
```
190+
177191
## 💬 Community & Support
178192

179193
Join our community to ask questions, share your projects, and connect with other developers.

0 commit comments

Comments
 (0)