File size: 2,367 Bytes
dc9c0ba e224dd2 d36e659 dc9c0ba cda7074 ae4c9a7 e224dd2 cda7074 9131901 cda7074 9131901 53c5213 4384755 dc9c0ba e224dd2 dc9c0ba 53c5213 dc9c0ba e224dd2 dc9c0ba 53c5213 e224dd2 9554c74 e224dd2 9554c74 d36a39f 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 |
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"
)
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:
next_sentences = []
for i in range(1, 6):
if idx + i < len(all_sentences):
next_sentences.append(all_sentences[idx + i])
# ↪️ آمادهسازی پرامپت برای ارسال به مدل
total_text = sentence + " " + " ".join(next_sentences)
prompt = f"پاسخی که باید بازنویسی شود:\n{total_text}\n\nلطفاً این پاسخ را با در نظر گرفتن محتوای سوال زیر و لحن آن بازنویسی کن:\n\nسوال: {query}"
# ارسال پرامپت به مدل و دریافت پاسخ
response = llm([{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}])
rewritten = response.strip()
st.markdown("🎨 **بازنویسی شده با LLM:**")
st.write(rewritten)
st.warning("پاسخ دریافتی معتبر نیست.")
found = True
break
if not found:
st.warning("عبارت موردنظر در متن یافت نشد.")
|