nazmul5836 commited on
Commit
72344a6
·
verified ·
1 Parent(s): 39469e4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -53
app.py CHANGED
@@ -1,53 +1,24 @@
1
- import gradio as gr
2
- from transformers import GPT2LMHeadModel, GPT2Tokenizer
3
- import torch
4
- from PIL import Image
5
-
6
- # মডেল এবং টোকেনাইজার লোড করুন
7
- model_name = "mistralai/Pixtral-12B-Base-2409"
8
- model = GPT2LMHeadModel.from_pretrained(model_name)
9
- tokenizer = GPT2Tokenizer.from_pretrained(model_name)
10
-
11
- # BTroy চ্যাটবটের ফাংশন
12
- def btroy_chat(input_text, temperature=1.0, top_p=1.0, frequency_penalty=0.0, input_image=None):
13
- # টেক্সট প্রসেসিং
14
- inputs = tokenizer.encode(input_text, return_tensors='pt')
15
-
16
- # ইমেজ প্রসেসিং যদি থাকে
17
- if input_image:
18
- image = Image.open(input_image)
19
- # এখানে আপনি ইমেজ প্রসেসিং কোড যোগ করতে পারেন (যেমন, ইমেজ থেকে ক্যাপশন জেনারেট করা)
20
-
21
- # মডেল আউটপুট
22
- outputs = model.generate(
23
- inputs,
24
- max_length=200,
25
- temperature=temperature,
26
- top_p=top_p,
27
- frequency_penalty=frequency_penalty
28
- )
29
-
30
- # আউটপুট টেক্সট ডিকোড করুন
31
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
32
-
33
- return response
34
-
35
- # Gradio ইন্টারফেস তৈরি
36
- iface = gr.Interface(
37
- fn=btroy_chat,
38
- inputs=[
39
- gr.Textbox(label="আপনার প্রশ্ন দিন", placeholder="আপনার প্রশ্ন এখানে টাইপ করুন..."),
40
- gr.Slider(minimum=0, maximum=2, default=1.0, label="Temperature"),
41
- gr.Slider(minimum=0, maximum=1, default=1.0, label="Top-p"),
42
- gr.Slider(minimum=0, maximum=2, default=0.0, label="Frequency Penalty"),
43
- gr.Image(label="আপনার ইমেজ দিন", type="pil", optional=True)
44
- ],
45
- outputs="text",
46
- title="BTroy AI চ্যাটবট",
47
- description="BTroy চ্যাটবট ব্যবহার করুন আপনার যেকোনো প্রশ্নের উত্তর পেতে। এটি মাল্টি-মোডাল ইনপুট সমর্থন করে (যেমন ইমেজ)।",
48
- theme="huggingface",
49
- allow_flagging="never"
50
- )
51
-
52
- # ইন্টারফেস রান করুন
53
- iface.launch()
 
1
+ from mistral_inference.transformer import Transformer
2
+ from mistral_inference.generate import generate
3
+
4
+ from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
5
+ from mistral_common.protocol.instruct.messages import UserMessage, TextChunk, ImageURLChunk
6
+ from mistral_common.protocol.instruct.request import ChatCompletionRequest
7
+
8
+ tokenizer = MistralTokenizer.from_file(f"{mistral_models_path}/tekken.json")
9
+ model = Transformer.from_folder(mistral_models_path)
10
+
11
+ url = "https://huggingface.co/datasets/patrickvonplaten/random_img/resolve/main/yosemite.png"
12
+ prompt = "Describe the image."
13
+
14
+ completion_request = ChatCompletionRequest(messages=[UserMessage(content=[ImageURLChunk(image_url=url), TextChunk(text=prompt)])])
15
+
16
+ encoded = tokenizer.encode_chat_completion(completion_request)
17
+
18
+ images = encoded.images
19
+ tokens = encoded.tokens
20
+
21
+ out_tokens, _ = generate([tokens], model, images=[images], max_tokens=256, temperature=0.35, eos_id=tokenizer.instruct_tokenizer.tokenizer.eos_id)
22
+ result = tokenizer.decode(out_tokens[0])
23
+
24
+ print(result)