File size: 3,499 Bytes
ad87178 6341792 9aa2922 6341792 896ef55 6341792 9aa2922 5c02a22 896ef55 6341792 9aa2922 6341792 9aa2922 36bf041 6341792 c86406f 6341792 c86406f 9aa2922 c86406f 6341792 9aa2922 896ef55 6341792 9aa2922 6341792 896ef55 6341792 |
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 |
import gradio as gr
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage
# مدل LLaMA-3 از طریق Together API
llm = ChatOpenAI(
base_url="https://api.together.xyz/v1",
api_key="0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979",
model="meta-llama/Llama-3.3-70B-Instruct-Turbo-Free",
max_tokens=1024
)
# تابع تولید گزارش
def generate_report(operation_data, max_tokens, temperature, top_p):
system_prompt = """
تو یک افسر گزارشنویس نظامی هستی. با استفاده از متن ورودی، یک گزارش رسمی، دقیق و خلاصه از عملیات تهیه کن. اگر اطلاعاتی وجود نداشت، صراحتاً بنویس «ذکر نشده است».
گزارش را با ساختار زیر بنویس:
1. **تاریخ و ساعت شروع عملیات**: [اگر در متن بود بنویس، در غیر این صورت بنویس: ذکر نشده است]
2. **تاریخ و ساعت پایان عملیات**: [اگر در متن بود بنویس، در غیر این صورت بنویس: ذکر نشده است]
3. **مکان عملیات**: [ذکر مکان انجام عملیات]
4. **واحدهای شرکتکننده**: [گردانها، گروهانها یا نیروهای دیگر شرکتکننده]
5. **هدف عملیات**: [اهداف اصلی عملیات]
6. **شرح مختصر عملیات**: [مسیری که نیروها حرکت کردند، درگیریها، تاکتیکها]
7. **نتیجه عملیات**: [پیروزی، شکست، وضعیت نامشخص]
8. **تلفات خودی**: [تعداد شهدا، مجروحین یا مفقودین - در صورت نبود بنویس: ذکر نشده است]
9. **تلفات دشمن**: [در صورت موجود بودن، ذکر شود]
10. **تجهیزات استفادهشده یا از دسترفته**: [تانک، پهپاد، سلاحهای خاص، غیره]
11. **یادداشتهای اضافی**: [اطلاعات خاص دیگر، شرایط آبوهوایی، موقعیتهای استثنایی]
دقت کن که گزارش باید رسمی و مختصر باشد. اطلاعات را به زبان فارسی رسمی و نظامی گزارش بده.
"""
# تعریف پیامها برای مدل
messages = [
HumanMessage(content=f"{system_prompt}\n\n{operation_data}")
]
# ارسال پیام به مدل و گرفتن پاسخ
response = llm(messages)
return response.content
# رابط Gradio
demo = gr.Interface(
fn=generate_report,
inputs=[
gr.Textbox(label="اطلاعات عملیات نظامی", lines=10, placeholder="مثلاً: در ساعت ۵ صبح، گردان الف از محور غربی وارد منطقه شد..."),
gr.Slider(128, 2048, value=1024, step=64, label="حداکثر توکن خروجی"),
gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="دمای خلاقیت (temperature)"),
gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-p"),
],
outputs=gr.Textbox(label="گزارش رسمی تولید شده", lines=10),
title="گزارشنویس هوش مصنوعی عملیات نظامی",
description="اطلاعات خام عملیات نظامی را وارد کن تا گزارش رسمی، خلاصه و حرفهای تولید شود."
)
if __name__ == "__main__":
demo.launch()
|