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("عبارت موردنظر در متن یافت نشد.")
|