File size: 2,391 Bytes
dc9c0ba
e224dd2
d36e659
dc9c0ba
cda7074
ae4c9a7
e224dd2
cda7074
9131901
 
cda7074
9131901
e224dd2
dc9c0ba
e224dd2
dc9c0ba
55f01cb
 
 
53c5213
4384755
dc9c0ba
e224dd2
dc9c0ba
 
 
 
 
 
 
53c5213
dc9c0ba
 
e224dd2
dc9c0ba
 
 
 
 
53c5213
e224dd2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53c5213
e224dd2
 
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
import streamlit as st
from hazm import Normalizer, SentenceTokenizer
import os
import docx
from langchain.chat_models import ChatOpenAI

# LLM setup
llm = ChatOpenAI(
    base_url="https://api.together.xyz/v1",
    api_key='0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979',
    model="deepseek-ai/DeepSeek-R1"
)

def rewrite_answer_with_llm(answer, user_input):
    prompt = f"پاسخی که باید بازنویسی شود:\n{answer}\n\nلطفاً این پاسخ را با در نظر گرفتن محتوای سوال زیر و لحن آن بازنویسی کن:\n\nسوال: {user_input}"

    response = llm(prompt)
    
    return response['choices'][0]['text'].strip()

folder_path = '46'
texts = []

for filename in os.listdir(folder_path):
    if filename.endswith(".docx"):
        full_path = os.path.join(folder_path, filename)
        doc = docx.Document(full_path)
        file_text = "\n".join([para.text for para in doc.paragraphs])
        if file_text.strip():
            texts.append(file_text)

normalizer = Normalizer()
sentence_tokenizer = SentenceTokenizer()

all_sentences = []
for text in texts:
    normalized = normalizer.normalize(text)
    sentences = sentence_tokenizer.tokenize(normalized)
    all_sentences.extend(sentences)

query = st.text_input("🔎 کلمه یا عبارت موردنظر خود را وارد کنید:")

# ✅ نمایش جمله و ۵ جمله بعدی + بازنویسی با LLM
if query:
    found = False
    for idx, sentence in enumerate(all_sentences):
        if query in sentence:
            st.success("✅ جمله یافت شد:")
            st.write(sentence)

            next_sentences = []
            st.markdown("📌 پنج جمله بعدی:")
            for i in range(1, 6):
                if idx + i < len(all_sentences):
                    st.write(all_sentences[idx + i])
                    next_sentences.append(all_sentences[idx + i])

            # ↪️ آماده‌سازی برای بازنویسی
            total_text = sentence + " " + " ".join(next_sentences)
            rewritten = rewrite_answer_with_llm(total_text, query)
            st.markdown("🎨 **بازنویسی شده با LLM:**")
            st.write(rewritten)

            found = True
            break

    if not found:
        st.warning("عبارت موردنظر در متن یافت نشد.")