VladTruTru commited on
Commit
9e3b9ea
·
verified ·
1 Parent(s): f097cca

Upload 4 files

Browse files
Files changed (4) hide show
  1. Dockerfile +23 -0
  2. README.md +5 -5
  3. app.py +83 -0
  4. requirements.txt +5 -0
Dockerfile ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Read the doc: https://huggingface.co/docs/hub/spaces-sdks-docker
2
+ # you will also find guides on how best to write your Dockerfile
3
+
4
+ FROM python:3.12
5
+ #FROM ollama/ollama:0.12.1-rc0
6
+
7
+ # RUN useradd -m -u 1000 ollama
8
+ # USER user
9
+ # ENV PATH="/home/user/.local/bin:$PATH"
10
+
11
+ WORKDIR /app
12
+
13
+ COPY --chown=user ./requirements.txt ./requirements.txt
14
+ RUN apt update
15
+ RUN apt install -y python3 python3-pip
16
+ RUN pip install --no-cache-dir --upgrade -r ./requirements.txt --break-system-packages
17
+ # Create a directory named 'my_app_data' with specific permissions
18
+ RUN rm -rvf /.cache ; mkdir -p /.cache && chmod 777 /.cache
19
+ COPY ./ ./
20
+ COPY --chown=user . /app
21
+ RUN ls -alh ./
22
+ #Override the entrypoint to run the vLLM server with your model
23
+ ENTRYPOINT ["python3", "./app.py"]
README.md CHANGED
@@ -1,12 +1,12 @@
1
  ---
2
- title: TruVoiceHFbot
3
- emoji: 🏆
4
- colorFrom: gray
5
- colorTo: indigo
6
  sdk: docker
7
  pinned: false
8
  license: afl-3.0
9
- short_description: TruVoiceHFbot
10
  ---
11
 
12
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: DockerOllama
3
+ emoji: 🏢
4
+ colorFrom: yellow
5
+ colorTo: pink
6
  sdk: docker
7
  pinned: false
8
  license: afl-3.0
9
+ short_description: DockerOllama
10
  ---
11
 
12
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import subprocess
3
+ from flask import Flask
4
+ from flask import request
5
+ import torch
6
+ from transformers import AutoTokenizer, AutoModelForCausalLM
7
+
8
+ name='Hello'
9
+ model_id = "Qwen/Qwen3-1.7B-Base"
10
+ # filename = "tinyllama-1.1b-chat-v1.0.Q6_K.gguf"
11
+
12
+
13
+ print(name, model_id)
14
+
15
+
16
+ # # pip install gguf
17
+ # import torch
18
+ # from transformers import AutoTokenizer, AutoModelForCausalLM
19
+
20
+
21
+ # dtype = torch.float32 # could be torch.float16 or torch.bfloat16 too
22
+ # tokenizer = AutoTokenizer.from_pretrained(model_id, gguf_file=filename)
23
+
24
+ # model = AutoModelForCausalLM.from_pretrained(model_id, gguf_file=filename, dtype=dtype)
25
+
26
+
27
+ # load the tokenizer and the model
28
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
29
+ model = AutoModelForCausalLM.from_pretrained(
30
+ model_id,
31
+ dtype="auto",
32
+ device_map="auto",
33
+ )
34
+
35
+ def get_texts(ask):
36
+
37
+ # prepare the model input
38
+ messages = [ {"role": "user", "content": ask},]
39
+ text = tokenizer.apply_chat_template(
40
+ messages,
41
+ tokenize=False,
42
+ add_generation_prompt=True,
43
+ )
44
+ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
45
+
46
+ # conduct text completion
47
+ generated_ids = model.generate(
48
+ **model_inputs,
49
+ max_new_tokens=16384,
50
+ )
51
+ output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
52
+
53
+ content = tokenizer.decode(output_ids, skip_special_tokens=True)
54
+
55
+ print("content:", content)
56
+ return content
57
+
58
+
59
+
60
+ app = Flask(name)
61
+
62
+ @app.route('/')
63
+ def hello_world():
64
+ return '<p>Hello, World!</p>'
65
+
66
+ @app.route('/gen/', methods=['GET'])
67
+ def gen_text():
68
+ error = None
69
+ query = request.args.get('ask')
70
+ # проверяем, передается ли параметр
71
+ # 'query' в URL-адресе
72
+ if query and query != '':
73
+ # если `query`существует и это не пустая строка,
74
+ # то можно приступать к обработке запроса
75
+ return f'<p>{get_texts(query)}</p>'
76
+ else:
77
+ # если `query` не существует или это пустая строка, то
78
+ # отображаем форму поискового запроса с сообщением.
79
+ error = 'Не введен запрос!'
80
+ return f'search.html'
81
+
82
+ if __name__ == '__main__':
83
+ app.run(debug=True, host='0.0.0.0', port='7860')
requirements.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ Flask
2
+ gguf
3
+ torch
4
+ transformers
5
+ accelerate