MemNet AI Python SDK
MemNet AI Python SDK 提供了与MemNet AI API交互的Python接口,包括基础请求客户端和增强功能。
功能特性
- 基础API请求客户端
- 记忆管理功能
- 思考功能
- 梦境功能
- 常识功能
- 增强版客户端(带LLM集成)
获取API Key
从MemNetAI后台站获取API Key 
安装
bash
pip install memnetai-python-sdk快速开始
基础客户端使用
python
from memnetai import MemNetAIClient
from memnetai import Message
# 初始化客户端
client = MemNetAIClient(
base_url="https://api.memnetai.com",
api_key="your_api_key"
)
messages = [
Message(role="user", content="什么是人工智能?", character="default")
]
# 1. 记忆
response = client.memories(
memory_agent_name="default",
namespace="default",
messages=messages
)
print("记忆结果:", response)
# 2. 回忆
response = client.recall(
memory_agent_name="default",
namespace="default",
query="什么是人工智能?",
)
print("回忆结果:", response)
# 3. 思考功能
response = client.think(
memory_agent_name="default",
namespace="default",
)
print("思考结果:", response)
# 4. 梦境功能
response = client.dream(
memory_agent_name="default",
namespace="default",
)
print("梦境结果:", response)
# 5. 常识功能
response = client.common_sense(
common_sense_database_id="default",
common_sense_text="科学",
)
print("常识结果:", response)增强版客户端使用
python
from memnetai import MemNetAIClientPlus
from memnetai import OpenAIConfig
def test_memnetaiclientplus():
# 配置OpenAI参数
openai_config = OpenAIConfig(
memnetai_api_key="your_memnet_api_key",
memory_agent_name="default",
base_url="https://api.openai.com/v1",
api_key="your_openai_api_key",
model_name="gpt-3.5-turbo",
)
# 初始化增强版客户端
client_plus = MemNetAIClientPlus(config=openai_config)
# 智能对话(自动记忆和回忆)
try:
while True:
if not client_plus.input(): # 用户输入了退出命令
break
response = client_plus.chat()
print(f"AI回复: {response}")
except KeyboardInterrupt:
print("\n正在关闭程序...")
finally:
client_plus.close()
if __name__ == "__main__":
test_memnetaiclientplus()API 文档
1. 基础客户端 (MemNetAIClient)
初始化参数
python
MemNetAIClient(api_key, base_url="https://api.memnetai.com")| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
api_key | str | 必须 | 无 | MemNet AI API 密钥 |
base_url | str | 可选 | "https://api.memnetai.com" | MemNet AI API 基础 URL |
1.1 记忆管理 (memories)
python
memories(memory_agent_name, namespace, messages, language="zh-CN", is_third_person=0, metadata="", async_mode=0)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
memory_agent_name | Optional[str] | 必须 | 无 | 记忆体名称 |
messages | List[Message] | 必须 | 无 | 消息列表,包含要保存的记忆内容 |
namespace | str | 可选 | default | 命名空间,用于隔离不同应用的记忆 |
language | str | 可选 | "zh-CN" | 记忆摘要预期语言 |
is_third_person | int | 可选 | 0 | 是否使用第三人称 (0: 不使用, 1: 使用) |
metadata | str | 可选 | "" | 元数据信息 |
async_mode | int | 可选 | 0 | 是否启用异步记忆 (0: 同步, 1: 异步) |
1.2 回忆功能 (recall)
python
recall(memory_agent_name, namespace, query, character="用户", recall_deep=1, is_include_linked_new_memories_from_invalid=0, is_using_associative_thinking=1, is_using_common_sense_database=1, is_using_global_common_sense_database=1, is_using_memory_agent_common_sense_database=0, common_sense_database_id_list=None, is_returning_detailed_memory_info=0)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
memory_agent_name | Optional[str] | 必须 | 无 | 记忆体名称 |
query | str | 必须 | 无 | 查询内容 |
namespace | str | 可选 | default | 命名空间,用于隔离不同应用的记忆 |
character | str | 可选 | "用户" | 角色名称 |
recall_deep | int | 可选 | 1 | 回忆深度 |
is_include_linked_new_memories_from_invalid | int | 可选 | 0 | 是否包含无效记忆关联的新记忆 |
is_using_associative_thinking | int | 可选 | 1 | 是否使用关联思考 |
is_using_common_sense_database | int | 可选 | 1 | 是否使用常识数据库 |
is_using_global_common_sense_database | int | 可选 | 1 | 是否使用全局常识数据库 |
is_using_memory_agent_common_sense_database | int | 可选 | 0 | 是否使用记忆体常识数据库 |
common_sense_database_id_list | Optional[List[str]] | 可选 | None | 常识数据库ID列表 |
is_returning_detailed_memory_info | int | 可选 | 0 | 是否返回详细记忆信息 |
1.3 思考功能 (think)
python
think(memory_agent_name, namespace, subject="", async_mode=1, is_auto=0)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
memory_agent_name | Optional[str] | 必须 | 无 | 记忆体名称 |
namespace | str | 可选 | default | 命名空间,用于隔离不同应用的记忆 |
subject | str | 可选 | "" | 思考主题,不指定则从历史记忆中随机抽取 |
async_mode | int | 可选 | 1 | 异步模式 (0: 同步, 1: 异步) |
is_auto | int | 可选 | 0 | 是否自动思考 (0: 手动, 1: 自动) |
1.4 做梦功能 (dream)
python
dream(memory_agent_name, namespace, subject="", async_mode=1, is_auto=0)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
memory_agent_name | Optional[str] | 必须 | 无 | 记忆体名称 |
namespace | str | 可选 | default | 命名空间,用于隔离不同应用的记忆 |
subject | str | 可选 | "" | 做梦主题,不指定则从历史记忆中随机抽取 |
async_mode | int | 可选 | 1 | 异步模式 (0: 同步, 1: 异步) |
is_auto | int | 可选 | 0 | 是否自动做梦 (0: 手动, 1: 自动) |
1.5 常识功能 (common_sense)
python
common_sense(common_sense_database_id, common_sense_text, async_mode=1)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
common_sense_database_id | str | 必须 | 无 | 常识记忆库ID |
common_sense_text | str | 必须 | 无 | 常识库文本内容 |
async_mode | int | 可选 | 1 | 异步模式 (0: 同步, 1: 异步) |
1.6 任务管理方法
所有任务管理方法都支持以下参数格式:
| 方法名 | 参数 | 描述 |
|---|---|---|
memories_detail | task_id | 获取记忆任务详情 |
memories_progress | task_id | 获取记忆任务进度 |
memories_all | 无 | 获取所有记忆任务 |
memories_delete | task_id | 删除记忆任务 |
think_detail | task_id | 获取思考任务详情 |
think_all | 无 | 获取所有思考任务 |
think_delete | task_id | 删除思考任务 |
dream_detail | task_id | 获取梦境任务详情 |
dream_all | 无 | 获取所有梦境任务 |
dream_delete | task_id | 删除梦境任务 |
common_sense_detail | task_id | 获取常识任务详情 |
common_sense_progress | task_id | 获取常识任务进度 |
common_sense_all | 无 | 获取所有常识任务 |
common_sense_delete | task_id | 删除常识任务 |
2. 增强版客户端 (MemNetAIClientPlus)
初始化参数
python
MemNetAIClientPlus(config)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
config | Config | 必须 | 无 | 配置对象,支持OpenAIConfig等 |
2.1 智能对话 (chat)
python
chat()| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| 无 | 无 | 无 | 无 | 与LLM进行对话,自动处理记忆和回忆 |
返回值: str - LLM的完整回复内容
2.2 用户输入 (input)
python
input(message=None)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
message | Optional[str] | 可选 | None | 用户输入的消息,不提供则从控制台获取 |
返回值: bool - 是否继续运行 (True: 继续, False: 退出)
2.3 关闭客户端 (close)
python
close()| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
| 无 | 无 | 无 | 无 | 清空消息队列,释放资源 |
3. 配置类
3.1 基础配置 (Config)
python
Config(memnetai_api_key, memory_agent_name, namespace="default", memnetai_base_url="https://api.memnetai.com", window_size=32)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
memnetai_api_key | str | 必须 | 无 | MemNet AI API 密钥 |
memory_agent_name | str | 必须 | 无 | 记忆智能体名称 |
namespace | str | 可选 | "default" | 命名空间,用于隔离不同应用的记忆 |
memnetai_base_url | str | 可选 | "https://api.memnetai.com" | MemNet AI API 基础 URL |
window_size | int | 可选 | 32 | 对话窗口大小,最小值为32 |
3.2 OpenAI 配置 (OpenAIConfig)
python
OpenAIConfig(memnetai_api_key, memory_agent_name, base_url, model_name, api_key, namespace="default", memnetai_base_url="https://api.memnetai.com", temperature=0.7, max_tokens=500, window_size=32)| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
memnetai_api_key | str | 必须 | 无 | MemNet AI API 密钥 |
memory_agent_name | str | 必须 | 无 | 记忆智能体名称 |
base_url | str | 必须 | 无 | OpenAI API 基础 URL |
model_name | str | 必须 | 无 | OpenAI 模型名称 (如 "gpt-3.5-turbo") |
api_key | str | 必须 | 无 | OpenAI API 密钥 |
namespace | str | 可选 | "default" | 命名空间,用于隔离不同应用的记忆 |
memnetai_base_url | str | 可选 | "https://api.memnetai.com" | MemNet AI API 基础 URL |
temperature | float | 可选 | 0.7 | 模型温度参数,控制输出的随机性 |
max_tokens | int | 可选 | 500 | 模型生成的最大令牌数 |
window_size | int | 可选 | 32 | 对话窗口大小,最小值为32 |
4. 消息类 (Message)
python
Message(role, content, character="")| 参数名 | 类型 | 是否必须 | 默认值 | 描述 |
|---|---|---|---|---|
role | str | 必须 | 无 | 角色 (如 "user", "assistant", "system") |
content | str | 必须 | 无 | 消息内容 |
character | str | 可选 | "" | 角色名称 |
示例应用
完整的对话应用
python
from memnetai import MemNetAIClientPlus
from memnetai import OpenAIConfig
# 配置参数
config = OpenAIConfig(
# MemNet AI 配置
memnetai_api_key="your_memnet_api_key",
memory_agent_name="my_agent",
namespace="my_app",
# OpenAI 配置
base_url="https://api.openai.com/v1",
api_key="your_openai_api_key",
model_name="gpt-3.5-turbo",
temperature=0.7,
max_tokens=1000,
# 对话窗口配置
window_size=64
)
# 创建客户端
client = MemNetAIClientPlus(config)
try:
print("欢迎使用 MemNet AI 增强客户端!输入 'exit' 或 'quit' 退出。")
while True:
user_input = input("\n用户: ")
if user_input.lower() in ['exit', 'quit']:
print("感谢使用,再见!")
break
# 添加用户消息并获取AI回复
if client.input(user_input):
response = client.chat()
print(f"AI: {response}")
finally:
client.close()错误处理
MemNetAIClient 内置了以下错误处理:
- HTTP 错误:显示状态码和响应内容
- 网络错误:无法连接到服务器时的提示
- 超时错误:请求超时的提示
- JSON 解析错误:API返回非JSON数据时的提示
- 未知异常:捕获所有其他异常并显示详细信息
注意事项
- API 密钥安全:不要将 API 密钥硬编码在代码中,建议使用环境变量或配置文件
- 网络连接:确保您的网络可以访问 MemNet AI 和 OpenAI API
- 版本兼容性:该SDK要求 Python 3.9+
- 异步模式:大部分API支持异步模式,适合处理大量请求
- 窗口大小:window_size 参数控制对话历史的长度,建议根据内存情况调整,最小值为32,每16条对话将存储一次记忆。