Spaces:
Running
Running
File size: 2,554 Bytes
e91e2b4 c5d7dd0 e91e2b4 0b7c6b7 c5d7dd0 e91e2b4 0b7c6b7 e4574f6 0b7c6b7 e91e2b4 0b7c6b7 e91e2b4 0b7c6b7 e91e2b4 0b7c6b7 e4574f6 e91e2b4 0b7c6b7 e4574f6 e91e2b4 e4574f6 0b7c6b7 e91e2b4 0b7c6b7 c5d7dd0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
import os
import requests
from datetime import datetime
MEMMACHINE_PORT = os.getenv("MEMORY_SERVER_URL")
PROMPT = """You are a helpful AI assistant. Use the provided context and profile information to answer the user's question accurately and helpfully.
<CURRENT_DATE>
{current_date}
</CURRENT_DATE>
Instructions:
- Use the PROFILE and CONTEXT data provided to answer the user's question
- Be conversational and helpful in your responses
- If you don't have enough information to answer completely, say so and suggest what additional information might be helpful
- If the context contains relevant information, use it to provide a comprehensive answer
- If no relevant context is available, let the user know and offer to help in other ways
- Be concise but thorough in your responses
- Use markdown formatting when appropriate to make your response clear and readable
Data Guidelines:
- Don't invent information that isn't in the provided context
- If information is missing or unclear, acknowledge this
- Prioritize the most recent and relevant information when available
- If there are conflicting pieces of information, mention this and explain the differences
Response Format:
- Start with a direct answer to the user's question
- Provide supporting details from the context when available
- Use bullet points or numbered lists when appropriate
- End with any relevant follow-up questions or suggestions"""
def ingest_and_rewrite(user_id: str, query: str) -> str:
"""Pass a raw user message through the memory server and get context-aware response."""
print("entered ingest_and_rewrite")
headers = {
"user-id": user_id,
"group-id": user_id,
"session-id": user_id,
"agent-id": "agent",
}
requests.post(
f"{MEMMACHINE_PORT}/v1/memories",
json={"producer": user_id, "produced_for": "agent", "episode_content": query},
headers=headers,
timeout=5,
)
resp = requests.post(
f"{MEMMACHINE_PORT}/v1/memories/search",
headers=headers,
json={"query": query},
timeout=1000,
)
resp.raise_for_status()
return PROMPT + "\n\n" + resp.text + "\n\n" + "User Query: " + query
def delete_profile(user_id: str) -> bool:
"""Delete the session for the given user_id"""
headers = {
"user-id": user_id,
"group-id": user_id,
"session-id": user_id,
"agent-id": "agent",
}
requests.delete(f"{MEMMACHINE_PORT}/v1/memories", headers=headers, json={})
return True |