自学内容网 自学内容网

让你的程序有记忆功能。

目录

环境

代码


环境

      大语言模型: gpt-40-mini

      Mem0:    Empower your AI applications with long-term memory and personalization

      OpenAPI-Key:  

      Mem0-Key:    

代码

import os

from dotenv import load_dotenv
from openai import OpenAI
from mem0 import Memory
load_dotenv()
# Set the OpenAI API key
os.environ['OPENAI_API_KEY'] = 'Open API Key'
from mem0 import MemoryClient

class PersonalTravelAssistant:
    def __init__(self):
        self.client = OpenAI(base_url ='https://hk.xty.app/v1')
        self.memory = MemoryClient(api_key="Mem0 Key")
        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-mini",
            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['memory'] for m in memories]

    def search_memories(self, query, user_id):
        memories = self.memory.search(query, user_id=user_id)
        return [m['memory'] 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()

 


原文地址:https://blog.csdn.net/yaobo2816/article/details/140700768

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!