赞
踩
随便找了一个,也可以下载其他支持function的模型,或者自己下载模型文件搭建
ollama run sam4096/qwen2tools
ollama run nomic-embed-text
git clone https://github.com/mem0ai/mem0.git
git checkout user/dyadav/ollama-support
修改这几个文件
http://192.168.0.24 换成ollama的ip地址
llm:
provider: ollama
config:
model: 'sam4096/qwen2tools'
temperature: 0.5
top_p: 1
stream: true
base_url: 'http://192.168.0.24:11434'
embedder:
provider: ollama
config:
model: 'nomic-embed-text'
base_url: 'http://192.168.0.24:11434'
也简单,设置ollama.yaml 的配置文件地址,OLLAMA_HOST 设置一样的ollama ip地址
import os from mem0 import Memory import yaml from mem0.memory.main import MemoryConfig os.environ["OLLAMA_HOST"] = "http://192.168.0.24:11434" # 从文件中加载YAML内容 with open('./ollama.yaml', 'r') as file: data = yaml.safe_load(file) # Initialize Mem0 config = MemoryConfig(**data) m = Memory(config) # Store a memory from any unstructured text result = m.add("我喜欢打篮球.", user_id="alice", metadata={"category": "hobbies"}) print(result) # Created memory: Improving her tennis skills. Looking for online suggestions. # Retrieve memories all_memories = m.get_all() print(all_memories) # Search memories related_memories = m.search(query="谁喜欢打篮球", user_id="alice") print(related_memories) # Update a memory result = m.update(memory_id="1c31c369-fc8a-4c7b-b700-3550bd395308", data="我不喜欢打篮球了,喜欢踢足球") print(result) # Get memory history history = m.history(memory_id="1c31c369-fc8a-4c7b-b700-3550bd395308") print(history)
写自己的ollama 地址就好
这边不换中文也可以,我习惯用中文提示词,删除 import pdb; pdb.set_trace() 需要删除掉
mem0/configs/prompts.py
UPDATE_MEMORY_PROMPT = """ 你是整合、更新和组织记忆的专家。当提供现有记忆和新信息时,你的任务是合并和更新记忆列表,以反映最准确和最新的信息。您还可以获得每个现有内存与新信息的匹配分数。确保利用这些信息来做出明智的决定,决定哪些记忆需要更新或合并。 指南: -消除重复的记忆和合并相关的记忆,以确保简洁和更新的列表。 -如果一个记忆与新的信息直接矛盾,批判性地评估这两个信息: —如果新内存提供的更新时间较近或较准确,请更换旧内存。 -如果新的记忆看起来不准确或不太详细,保留原来的记忆,丢弃旧的记忆。 -在所有记忆中保持一致和清晰的风格,确保每个条目简洁而又有信息。 —如果新记忆是现有记忆的变化或扩展,更新现有记忆以反映新的信息。 以下是这项任务的细节: -现有记忆: {existing_memories} -新内存:{memory} """ MEMORY_DEDUCTION_PROMPT = """ 从所提供的文本中推断出事实、偏好和记忆。 只需将事实、偏好和记忆以要点形式返回即可: 自然语言文本:{user_input} 用户/代理详细信息:{metadata} 推断:推断事实、偏好和记忆的限制: -事实、偏好和记忆应该是简洁而翔实的。 -不要以“这个人喜欢披萨”开头。相反,从“喜欢披萨”开始。 -不要记住所提供的用户/代理详细信息。只记住事实、偏好和回忆。 推断出的事实、偏好和记忆: """
mem0/memory/main.py
messages=[
{
"role": "system",
"content": "你是一个从非结构化文本中推断事实、偏好和记忆的专家。",
},
{"role": "user", "content": prompt},
]
删除掉 import pdb; pdb.set_trace()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。