一、安装依赖:
pip install mem0ai
二、代码如下:
import os
from openai import OpenAI
from mem0 import Memory
Set the OpenAI API key
os.environ['OPENAI_API_KEY'] = 'sk-xxx'
class PersonalTravelAssistant:
def init(self):
self.client = OpenAI()
self.memory = Memory()
self.messages = [{"role": "system", "content": "You are a personal AI Assistant."}]
def ask_question(self, question, user_id):
Fetch previous related memories
previous_memories = self.search_memories(question, user_id=user_id)
prompt = question
if previous_memories:
prompt = f"User input: {question}\n Previous memories: {previous_memories}"
self.messages.append({"role": "user", "content": prompt})
Generate response using GPT-4o
response = self.client.chat.completions.create(
model="gpt-4o",
messages=self.messages
)
answer = response.choices[0].message.content
self.messages.append({"role": "assistant", "content": answer})
Store the question in memory
self.memory.add(question, user_id=user_id)
return answer
def get_memories(self, user_id):
memories = self.memory.get_all(user_id=user_id)
return [m['text'] for m in memories]
def search_memories(self, query, user_id):
memories = self.memory.search(query, user_id=user_id)
return [m['text'] for m in memories]
Usage example
user_id = "traveler_123"
ai_assistant = PersonalTravelAssistant()
def main():
while True:
question = input("Question: ")
if question.lower() in ['q', 'exit']:
print("Exiting...")
break
answer = ai_assistant.ask_question(question, user_id=user_id)
print(f"Answer: {answer}")
memories = ai_assistant.get_memories(user_id=user_id)
print("Memories:")
for memory in memories:
print(f"- {memory}")
print("-----")
if name == "main":
main()
运行结果如下:
Question: 你好,夏天北京哪里比较好玩?
Answer: 你好!北京夏天有很多好玩的地方,以下是一些推荐:
1. **颐和园**:这里有美丽的昆明湖和丰富的历史文化遗产,非常适合夏天游览。此外,你可以租一条小船在湖上泛舟,非常惬意。
2. **北海公园**:这是一座历史悠久的皇家园林,有美丽的白塔和湖景,可以荡舟和散步。
3. **什刹海**:包括前海、后海和西海,这里的酒吧街和胡同非常有特色。夏天晚上,这里会非常热闹,适合夜晚散步和品尝小吃。
4. **北京欢乐谷**:这是一家大型主题公园,拥有各种刺激的娱乐设施和精彩的表演,非常适合全家或朋友一起去玩。
5. **北京动物园和北京海洋馆**:如果你喜欢动物或海洋生物,这两个地方都是不错的选择。北京动物园是中国历史最悠久、饲养动物种类最多的动物园之一。
6. **长城(慕田峪、八达岭)**:虽然登长城比较费力,但夏天的长城非常壮观,绿树成荫,风景优美。
7. **国家大剧院**:喜欢艺术的朋友可以考虑去这里看看演出,夏天也有很多精彩的演出项目。
8. **798艺术区**:这里是现代艺术的聚集地,有很多画廊、咖啡馆和时尚的小店,是文艺青年的好去处。
9. **三里屯**:这里是北京最有活力的商业区之一,有很多时尚商店、餐厅和夜店。
这些地方都各有特色,希望能给你带来一个愉快的夏天体验!
Memories:
- Speaks Chinese.
-----
Question: 我最爱去颐和园了,都去过好多次了。
Answer: 那太好了!颐和园确实是一个美丽而且历史悠久的地方。
既然你已经去过颐和园很多次,也许你可以考虑一些别的地方来丰富你的夏日体验:
1. **清华大学和北京大学校园**:这两所著名学府不仅文化气息浓厚,而且校园环境也非常优美。夏天的时候,还可以看到满园的绿树和静谧的湖泊。
2. **大运河森林公园**:位于通州区,这里有大片的自然景观和丰富的动植物资源,非常适合夏天去野餐或散步。
3. **香山公园**:虽然更适合秋天的红叶观赏,但夏天的香山也十分凉爽,是一个爬山和呼吸新鲜空气的好地方。
4. **金海湖**:位于平谷区,这里风景非常秀丽,可以游泳、划船、钓鱼,适合家庭或朋友一起度假。
5. **居庸关长城**:除了八达岭和慕田峪,居庸关长城也是一个非常壮观的长城景点,且相对不那么拥挤。
6. **故宫和天坛**:作为北京的地标性景点,故宫和天坛不仅有着深厚的历史背景,建筑风景也是非常壮观。
7. **南锣鼓巷**:这里有很多历史悠久的胡同和四合院,还有各种特色小店和美食。
8. **圆明园**:虽然主要是遗址,但夏天的圆明园荷花盛开,非常美丽,值得一游。
希望这些建议能够为你提供一些新的思路,让你的北京夏天更加丰富多彩!如果你对某个地方有特别的兴趣,我们还可以进一步讨论。
Memories:
- Speaks Chinese.
- Loves visiting the Summer Palace (颐和园).
- Has visited the Summer Palace many times.
-----
Question: 长城是北京的伟大建筑,去年又去过一次。
Answer: 太棒了!长城确实是北京乃至中国的一大奇观,每次去都有不同的感受。如果你对北京比较熟悉且已经去过一些主要景点,那不妨尝试一些稍微小众但同样充满魅力的地方:
1. **故宫博物院**:虽然你可能已经去过,但故宫的每次展览和角落都有不同的故事可以发现。
2. **北京798艺术区**:现代艺术爱好者不可错过的地方,充满创造力的画廊、工作室和咖啡厅。
3. **国家博物馆**:如果你对历史和文化感兴趣,这里有丰富的展览,涵盖中国历史上各个重要时期。
4. **北京植物园**:绿意盎然的自然景观,喜欢植物和花卉的话,这里绝对是夏季避暑的好去处。
5. **古北水镇**:位于北京市密云区,是一个以古建筑和水乡风景而闻名的旅游胜地,可以体验到仿古的环境中度假。
6. **潭拓寺**:也是一个避暑的好地方,这里的古树参天,有“北方小庐山”之称,空气清新且历史悠久。
7. **琉璃厂文化街**:适合文艺爱好者,这里有很多古色古香的书店、古玩店和茶馆。
8. **Morning Qing**: 北京的农夫市集,可以了解到更多的有机产品及环保理念,也充满了浓浓的人情味。
9. **通州大运河森林公园**:如前所述,这里有广阔的自然景观,非常适合散步、骑行和家庭出游。
10. **圆明园遗址公园**:你可能去过颐和园,但圆明园遗址公园也有特别的历史价值,尤其是夏天的荷花池,美不胜收。
这些地方都有他们独特的魅力,可以让你在熟悉的北京中发现更多新的惊喜。希望你下次在北京的游览更加丰富和愉快!
Memories:
- Speaks Chinese.
- Visited the Great Wall in Beijing last year.
- Considers the Great Wall a magnificent structure.
- Loves visiting the Summer Palace (颐和园).
- Has visited the Summer Palace many times.
-----
Question: 古北水镇也去过的。
Answer: 看来你对北京有相当深入的了解并已经探索了许多著名的景点。为了带来一些新鲜感,你可以考虑以下一些比较小众但同样有趣的地方:
1. **后海酒吧街和烟袋斜街**:位于什刹海附近,是休闲和夜生活的好地方,可以感受到不同于白天的北京韵味。
2. **北京胡同游**:例如南锣鼓巷(虽然有些游客,但仍充满魅力)、东四胡同、和大栅栏。这些地方可以通过步行或骑自行车游览,体验老北京的生活氛围。
3. **中国电影博物馆**:如果你对电影感兴趣,这里展示了中国电影的历史和各种有趣的展览。
4. **中央电视塔**:可以登上观景台,从高处俯瞰整个北京,非常适合拍照和欣赏城市全景。
5. **北京地坛公园**:夏天绿树成荫,空气清新,这里还经常举办各种文化活动和市集。
6. **古观象台**:这是世界上最古老的天文台之一,提供丰富的天文历史知识。
7. **大运河文化带**:深入了解大运河的历史和文化,同时还可以欣赏沿途的美丽风光。
8. **妙应寺白塔**:这是元代的重要遗存,也是北京地区保存最完好的砖、石、木构建筑之一。
9. **中国铁道博物馆**:如果你对火车或工业历史感兴趣,这里展示了中国铁路事业的发展历程。
10. **北京香山公园**:虽然你可能更偏爱夏天,但这里无论哪个季节都有独特的风景,尤其是自然风光和徒步体验。
希望这些地方能为你带来一些新的发现和乐趣。如果你还有其他特别感兴趣的主题或类型,也可以告诉我,我会根据你的兴趣做进一步推荐!
Memories:
- Speaks Chinese.
- Visited 古北水镇 (Gubei Water Town).
- Visited the Great Wall in Beijing last year.
- Considers the Great Wall a magnificent structure.
- Has visited the Summer Palace (颐和园) many times.
-----
Question: