Skip to content

MemNet AI Python SDK

MemNet AI Python SDK 提供了与MemNet AI API交互的Python接口,包括基础请求客户端和增强功能。

功能特性

  • 基础API请求客户端
  • 记忆管理功能
  • 思考功能
  • 梦境功能
  • 常识功能
  • 增强版客户端(带LLM集成)

获取API Key

从MemNetAI后台站获取API Key api-key.png

安装

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_keystr必须MemNet AI API 密钥
base_urlstr可选"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_nameOptional[str]必须记忆体名称
messagesList[Message]必须消息列表,包含要保存的记忆内容
namespacestr可选default命名空间,用于隔离不同应用的记忆
languagestr可选"zh-CN"记忆摘要预期语言
is_third_personint可选0是否使用第三人称 (0: 不使用, 1: 使用)
metadatastr可选""元数据信息
async_modeint可选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_nameOptional[str]必须记忆体名称
querystr必须查询内容
namespacestr可选default命名空间,用于隔离不同应用的记忆
characterstr可选"用户"角色名称
recall_deepint可选1回忆深度
is_include_linked_new_memories_from_invalidint可选0是否包含无效记忆关联的新记忆
is_using_associative_thinkingint可选1是否使用关联思考
is_using_common_sense_databaseint可选1是否使用常识数据库
is_using_global_common_sense_databaseint可选1是否使用全局常识数据库
is_using_memory_agent_common_sense_databaseint可选0是否使用记忆体常识数据库
common_sense_database_id_listOptional[List[str]]可选None常识数据库ID列表
is_returning_detailed_memory_infoint可选0是否返回详细记忆信息

1.3 思考功能 (think)

python
think(memory_agent_name, namespace, subject="", async_mode=1, is_auto=0)
参数名类型是否必须默认值描述
memory_agent_nameOptional[str]必须记忆体名称
namespacestr可选default命名空间,用于隔离不同应用的记忆
subjectstr可选""思考主题,不指定则从历史记忆中随机抽取
async_modeint可选1异步模式 (0: 同步, 1: 异步)
is_autoint可选0是否自动思考 (0: 手动, 1: 自动)

1.4 做梦功能 (dream)

python
dream(memory_agent_name, namespace, subject="", async_mode=1, is_auto=0)
参数名类型是否必须默认值描述
memory_agent_nameOptional[str]必须记忆体名称
namespacestr可选default命名空间,用于隔离不同应用的记忆
subjectstr可选""做梦主题,不指定则从历史记忆中随机抽取
async_modeint可选1异步模式 (0: 同步, 1: 异步)
is_autoint可选0是否自动做梦 (0: 手动, 1: 自动)

1.5 常识功能 (common_sense)

python
common_sense(common_sense_database_id, common_sense_text, async_mode=1)
参数名类型是否必须默认值描述
common_sense_database_idstr必须常识记忆库ID
common_sense_textstr必须常识库文本内容
async_modeint可选1异步模式 (0: 同步, 1: 异步)

1.6 任务管理方法

所有任务管理方法都支持以下参数格式:

方法名参数描述
memories_detailtask_id获取记忆任务详情
memories_progresstask_id获取记忆任务进度
memories_all获取所有记忆任务
memories_deletetask_id删除记忆任务
think_detailtask_id获取思考任务详情
think_all获取所有思考任务
think_deletetask_id删除思考任务
dream_detailtask_id获取梦境任务详情
dream_all获取所有梦境任务
dream_deletetask_id删除梦境任务
common_sense_detailtask_id获取常识任务详情
common_sense_progresstask_id获取常识任务进度
common_sense_all获取所有常识任务
common_sense_deletetask_id删除常识任务

2. 增强版客户端 (MemNetAIClientPlus)

初始化参数

python
MemNetAIClientPlus(config)
参数名类型是否必须默认值描述
configConfig必须配置对象,支持OpenAIConfig等

2.1 智能对话 (chat)

python
chat()
参数名类型是否必须默认值描述
与LLM进行对话,自动处理记忆和回忆

返回值: str - LLM的完整回复内容

2.2 用户输入 (input)

python
input(message=None)
参数名类型是否必须默认值描述
messageOptional[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_keystr必须MemNet AI API 密钥
memory_agent_namestr必须记忆智能体名称
namespacestr可选"default"命名空间,用于隔离不同应用的记忆
memnetai_base_urlstr可选"https://api.memnetai.com"MemNet AI API 基础 URL
window_sizeint可选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_keystr必须MemNet AI API 密钥
memory_agent_namestr必须记忆智能体名称
base_urlstr必须OpenAI API 基础 URL
model_namestr必须OpenAI 模型名称 (如 "gpt-3.5-turbo")
api_keystr必须OpenAI API 密钥
namespacestr可选"default"命名空间,用于隔离不同应用的记忆
memnetai_base_urlstr可选"https://api.memnetai.com"MemNet AI API 基础 URL
temperaturefloat可选0.7模型温度参数,控制输出的随机性
max_tokensint可选500模型生成的最大令牌数
window_sizeint可选32对话窗口大小,最小值为32

4. 消息类 (Message)

python
Message(role, content, character="")
参数名类型是否必须默认值描述
rolestr必须角色 (如 "user", "assistant", "system")
contentstr必须消息内容
characterstr可选""角色名称

示例应用

完整的对话应用

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数据时的提示
  • 未知异常:捕获所有其他异常并显示详细信息

注意事项

  1. API 密钥安全:不要将 API 密钥硬编码在代码中,建议使用环境变量或配置文件
  2. 网络连接:确保您的网络可以访问 MemNet AI 和 OpenAI API
  3. 版本兼容性:该SDK要求 Python 3.9+
  4. 异步模式:大部分API支持异步模式,适合处理大量请求
  5. 窗口大小:window_size 参数控制对话历史的长度,建议根据内存情况调整,最小值为32,每16条对话将存储一次记忆。