File size: 2,687 Bytes
0b090fd
 
 
36d8e38
0b090fd
 
 
 
 
36d8e38
22fe211
0b090fd
 
22fe211
36d8e38
 
 
 
 
 
22fe211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36d8e38
 
a2afe38
22fe211
36d8e38
a2afe38
36d8e38
a2afe38
22fe211
 
 
0b090fd
 
 
 
 
 
 
 
 
 
 
 
a2afe38
0b090fd
 
 
 
 
 
 
 
 
 
 
 
22fe211
 
0b090fd
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
72
73
74
75
import os
import gradio as gr
from groq import Groq
import requests

groq_client = Groq(
    api_key=os.environ.get("GROQ_API_KEY"),
)

NOTION_TOKEN = os.environ.get("NOTION_TOKEN")
NOTION_PAGE_ID = "4fc0a081f0a84257879d6f7638e368b9"  # Replace with your actual page ID

def store_conversation(user_input, bot_response):
    url = f"https://api.notion.com/v1/blocks/{NOTION_PAGE_ID}/children"
    headers = {
        "Authorization": f"Bearer {NOTION_TOKEN}",
        "Content-Type": "application/json",
        "Notion-Version": "2022-06-28"
    }
    data = {
        "children": [
            {
                "object": "block",
                "type": "paragraph",
                "paragraph": {
                    "rich_text": [{"type": "text", "text": {"content": f"User: {user_input}"}}]
                }
            },
            {
                "object": "block",
                "type": "paragraph",
                "paragraph": {
                    "rich_text": [{"type": "text", "text": {"content": f"Bot: {bot_response[:1997]}..."}}]
                }
            }
        ]
    }
    
    try:
        response = requests.patch(url, headers=headers, json=data)
        response.raise_for_status()
        print("Conversation stored successfully")
    except requests.exceptions.RequestException as e:
        print(f"Error storing conversation: {str(e)}")
        print(f"Response status code: {e.response.status_code}")
        print(f"Response content: {e.response.content}")
        print("Make sure the Notion page is shared with your integration and the page ID is correct.")

def chat_with_groq(user_input, additional_context=None):
    chat_completion = groq_client.chat.completions.create(
        messages=[
            {
                "role": "user",
                "content": user_input,
            }
        ],
        model="llama-3.1-8b-instant",
    )
    bot_response = chat_completion.choices[0].message.content
    store_conversation(user_input, bot_response)
    return bot_response

demo = gr.ChatInterface(fn=chat_with_groq, 
                        textbox=gr.Textbox(placeholder="Ask me any question"), 
                        title="Hey NOPE", theme="Monochrome", 
                        description="Welcome to the world of NOPE", 
                        examples=["Need some content Idea", "Generate some Thumbnail Text"], 
                        retry_btn=None, 
                        undo_btn="Delete Previous", 
                        clear_btn="Clear",)

if __name__ == "__main__":
    print(f"Using Notion page ID: {NOTION_PAGE_ID}")
    print("Make sure the Notion page is shared with your integration.")
    demo.launch()