Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

History 관리 #29

Open
Oh-JunTaek opened this issue Aug 30, 2024 · 0 comments
Open

History 관리 #29

Oh-JunTaek opened this issue Aug 30, 2024 · 0 comments

Comments

@Oh-JunTaek
Copy link
Contributor

history관리

초안

import spacy
from pymongo import MongoClient
from datetime import datetime
import pytz

# spaCy를 사용하여 간단한 키워드 기반 태그 추출
nlp = spacy.load("en_core_web_sm")

def extract_tags(text):
    doc = nlp(text)
    tags = [chunk.text for chunk in doc.noun_chunks]
    return tags

# MongoDB 연결 설정
client = MongoClient('mongodb://localhost:27017/')
db = client['chatbot_db']  # 데이터베이스 이름 설정
collection = db['chat_history']  # 콜렉션 이름 설정

def save_conversation(user_id, thread_id, role, text):
    # 현재 시간을 한국 시간으로 설정
    korea_tz = pytz.timezone('Asia/Seoul')
    current_time = datetime.now(korea_tz).strftime('%Y-%m-%d %H:%M:%S')

    # 대화 태그 추출
    tags = extract_tags(text)

    # 대화 내용 저장
    conversation = {
        "user_id": user_id,
        "thread_id": thread_id,
        "timestamp": current_time,
        "role": role,
        "text": text,
        "tags": tags  # 태그 저장
    }
    collection.insert_one(conversation)

def history(user_id, thread_id, limit=5):
    # 대화 기록 불러오기
    query = {
        "user_id": user_id,
        "thread_id": thread_id
    }
    conversations = collection.find(query).sort("timestamp", -1).limit(limit)

    # 내림차순으로 가져온 후, 이를 다시 뒤집어 최신순으로 반환
    return list(conversations)[::-1]

# 예시 사용
save_conversation("user123", "thread456", "user", "Hello, how are you?")
save_conversation("user123", "thread456", "system", "I'm fine, thank you! Let's talk about the weather.")

# 최근 대화 5개 가져오기
recent_conversations = history("user123", "thread456", limit=5)
for conversation in recent_conversations:
    print(f"대화 시간: {conversation['timestamp']}")
    print(f"발화 주체: {conversation['role']}")
    print(f"대화 텍스트: {conversation['text']}")
    print(f"태그: {conversation['tags']}\n")

지금 풀리퀘가 안되는 것 같아서 일단 이슈로 내용 남겨둡니다.

Oh-JunTaek added a commit that referenced this issue Sep 2, 2024
feat : 유저별 쓰레드 및 히스토리 기록 기능 추가 . #29
jieun-lim added a commit that referenced this issue Sep 3, 2024
add: request 데이터 변경(user_id, chat_id)에 따른 인풋 받기 부분 수정  #29
jieun-lim added a commit that referenced this issue Sep 3, 2024
add: request 데이터 변경(user_id, chat_id)에 따른 app.py 관련 함수 및 에러 수정  #29
jieun-lim added a commit that referenced this issue Sep 3, 2024
revise: 변수명 수정 thread_id to chat_id #29
jieun-lim added a commit that referenced this issue Sep 3, 2024
feat: app.py 에서 db 히스토리 만들도록 구현 #29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant