File size: 1,948 Bytes
e91e2b4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c882b4d
 
 
e91e2b4
 
c882b4d
 
 
e91e2b4
 
 
 
 
 
c882b4d
e91e2b4
 
 
 
 
 
c882b4d
 
 
 
 
 
 
e91e2b4
 
 
 
 
 
c882b4d
 
e91e2b4
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
from datetime import datetime

import requests

# Backend server URL - can be set via environment variable
# For Hugging Face Spaces: Set MEMORY_SERVER_URL in Space settings (Repository secrets)
# For local development: Set MEMORY_SERVER_URL in your .env file
EXAMPLE_SERVER_PORT = os.getenv("MEMORY_SERVER_URL")



def ingest_and_rewrite(user_id: str, query: str, model_type: str = "openai") -> str:
    """Pass a raw user message through the memory server and get context-aware response."""
    print("entered ingest_and_rewrite")

    resp = requests.post(
        f"{EXAMPLE_SERVER_PORT}/memory/store-and-search",
        params={"user_id": user_id, "query": query},
        timeout=1000,
    )
    resp.raise_for_status()

    return resp.text


def add_session_message(user_id: str, msg: str) -> None:
    """Add a raw message into memory via memory server."""
    requests.post(
        f"{EXAMPLE_SERVER_PORT}/memory",
        params={"user_id": user_id, "query": msg},
        timeout=5,
    )


def create_persona_query(user_id: str, query: str) -> str:
    """Create a persona-aware query by searching memory context via memory server."""
    resp = requests.get(
        f"{EXAMPLE_SERVER_PORT}/memory",
        params={
            "query": query,
            "user_id": user_id,
            "timestamp": datetime.now().isoformat(),
        },
        timeout=1000,
    )
    resp.raise_for_status()

    search_results = resp.json()

    if search_results.get("profile"):
        return f"Based on your profile: {search_results['profile']}\n\nQuery: {query}"
    else:
        return f"Query: {query}"


def add_new_session_message(user_id: str, msg: str) -> None:
    """Alias for add_session_message for backward compatibility."""
    add_session_message(user_id, msg)


def delete_profile(user_id: str) -> bool:
    """Delete all memory for the given user_id via the CRM server."""
    # NOT IMPLEMENTED
    return False