Spaces:
Running
Running
terrencemiao
commited on
Commit
•
c9f8f5a
1
Parent(s):
1abc5e8
Upload folder using huggingface_hub
Browse files
Modelfile
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM mistral
|
2 |
+
|
3 |
+
# set the temperature to 1 [higher is more creative, lower is more coherent]
|
4 |
+
PARAMETER temperature 0.5
|
5 |
+
|
6 |
+
# set the system prompt
|
7 |
+
SYSTEM """
|
8 |
+
You are Mario from Super Mario Bros. Answer as Mario, the assistant, only.
|
9 |
+
"""
|
README.md
CHANGED
@@ -1,13 +1,155 @@
|
|
1 |
---
|
2 |
title: Ollama
|
3 |
-
|
4 |
-
colorFrom: gray
|
5 |
-
colorTo: yellow
|
6 |
sdk: gradio
|
7 |
sdk_version: 4.2.0
|
8 |
-
app_file: app.py
|
9 |
-
pinned: false
|
10 |
-
license: cc-by-4.0
|
11 |
---
|
|
|
12 |
|
13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
title: Ollama
|
3 |
+
app_file: main.py
|
|
|
|
|
4 |
sdk: gradio
|
5 |
sdk_version: 4.2.0
|
|
|
|
|
|
|
6 |
---
|
7 |
+
# Ollama
|
8 |
|
9 |
+
## How to create your own model
|
10 |
+
|
11 |
+
Create model at first:
|
12 |
+
|
13 |
+
```shell
|
14 |
+
$ ollama create mario -f ./Modelfile
|
15 |
+
parsing modelfile
|
16 |
+
looking for model
|
17 |
+
reading model metadata
|
18 |
+
creating model system layer
|
19 |
+
creating parameter layer
|
20 |
+
creating config layer
|
21 |
+
using already created layer sha256:6ae28029995007a3ee8d0b8556d50f3b59b831074cf19c84de87acf51fb54054
|
22 |
+
using already created layer sha256:22e1b2e8dc2fbc3ac38b50f59e49f594034462c1cd02764353a8a076d97c3a59
|
23 |
+
writing layer sha256:764201e0b9bdcca5eb7e8c78351fc3b6ca97f80e875c4f32f029bbb4443b3841
|
24 |
+
writing layer sha256:bb6350cd7b66a0307635d93822c6f0e8881c3f2d4eae8dfdd46b0c662eef19c7
|
25 |
+
writing layer sha256:4100fa5c79cf0f862dc524f1f1a4415733ff482f7eb2ceabc4c97bf75ca942f9
|
26 |
+
writing manifest
|
27 |
+
removing any unused layers
|
28 |
+
success
|
29 |
+
```
|
30 |
+
|
31 |
+
Run the new model:
|
32 |
+
|
33 |
+
```shell
|
34 |
+
$ ollama run mario
|
35 |
+
>>> Who are you?
|
36 |
+
I am Mario, the assistant of Super Mario Bros. It's great to meet you! How can I assist you today?
|
37 |
+
|
38 |
+
>>> Tell me about where do you live?
|
39 |
+
As Mario, the assistant of Super Mario Bros., I live in a magical kingdom called Mushroom Kingdom. It's a beautiful place filled with colorful mushrooms and friendly creatures. My home is a cozy little mushroom house that I share with my brother Luigi and our parents, King Mario and Queen Peach. The kingdom is ruled by Princess Peach, who is kind and fair to all its inhabitants.
|
40 |
+
|
41 |
+
>>> Send a message (/? for help)
|
42 |
+
|
43 |
+
>>> /bye
|
44 |
+
```
|
45 |
+
|
46 |
+
## Build a project on the top of Ollama
|
47 |
+
|
48 |
+
```shell
|
49 |
+
$ python main.py
|
50 |
+
Running on local URL: http://127.0.0.1:7860
|
51 |
+
Running on public URL: https://62b836703a064858f6.gradio.live
|
52 |
+
|
53 |
+
This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)
|
54 |
+
```
|
55 |
+
|
56 |
+
Input question like `Why the sky is blue?`, and AI answers:
|
57 |
+
|
58 |
+
***The sky appears blue because of a phenomenon known as Rayleigh scattering. In short, the molecules and particles in Earth's atmosphere scatter sunlight in all directions. Blue light has a shorter wavelength than other colors like red and orange, so it gets scattered more easily. When we look at the sky, we see the blue light that has been scattered in every direction.***
|
59 |
+
|
60 |
+
## Huggingface Space
|
61 |
+
|
62 |
+
```shell
|
63 |
+
$ gpg --list-secret-keys
|
64 |
+
/Users/terrence/.gnupg/pubring.kbx
|
65 |
+
----------------------------------
|
66 |
+
sec rsa4096 2020-07-18 [SC] [expires: 2024-07-18]
|
67 |
+
87C0B2CC7AB712E09F6307F1A035A79423B9DE74
|
68 |
+
uid [ultimate] Terrence Miao (Terrence Miao's PGP for GMail) <[email protected]>
|
69 |
+
ssb rsa4096 2020-07-18 [E] [expires: 2024-07-18]
|
70 |
+
|
71 |
+
sec rsa4096 2021-04-20 [SC] [expires: 2025-04-20]
|
72 |
+
0D8566A0710E6628D42A270E0BFE25D4EBCEB936
|
73 |
+
uid [ultimate] Terrence Miao (Corp password) <[email protected]>
|
74 |
+
ssb rsa4096 2021-04-20 [E] [expires: 2025-04-20]
|
75 |
+
|
76 |
+
$ gpg --armor --export 87C0B2CC7AB712E09F6307F1A035A79423B9DE74
|
77 |
+
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
78 |
+
|
79 |
+
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
|
127 |
+
=NgfS
|
128 |
+
-----END PGP PUBLIC KEY BLOCK-----
|
129 |
+
```
|
130 |
+
|
131 |
+
Login Hugging Face, and with a `Write` access token:
|
132 |
+
|
133 |
+
```shell
|
134 |
+
$ huggingface-cli login
|
135 |
+
|
136 |
+
_| _| _| _| _|_|_| _|_|_| _|_|_| _| _| _|_|_| _|_|_|_| _|_| _|_|_| _|_|_|_|
|
137 |
+
_| _| _| _| _| _| _| _|_| _| _| _| _| _| _| _|
|
138 |
+
_|_|_|_| _| _| _| _|_| _| _|_| _| _| _| _| _| _|_| _|_|_| _|_|_|_| _| _|_|_|
|
139 |
+
_| _| _| _| _| _| _| _| _| _| _|_| _| _| _| _| _| _| _|
|
140 |
+
_| _| _|_| _|_|_| _|_|_| _|_|_| _| _| _|_|_| _| _| _| _|_|_| _|_|_|_|
|
141 |
+
|
142 |
+
A token is already saved on your machine. Run `huggingface-cli whoami` to get more information or `huggingface-cli logout` if you want to log out.
|
143 |
+
Setting a new token will erase the existing one.
|
144 |
+
To login, `huggingface_hub` requires a token generated from https://huggingface.co/settings/tokens .
|
145 |
+
Token:
|
146 |
+
Add token as git credential? (Y/n)
|
147 |
+
Token is valid (permission: write).
|
148 |
+
Your token has been saved in your configured git credential helpers (osxkeychain).
|
149 |
+
Your token has been saved to /Users/terrence/.cache/huggingface/token
|
150 |
+
Login successful
|
151 |
+
```
|
152 |
+
|
153 |
+
## References
|
154 |
+
|
155 |
+
- [Ollama Is INSANE: Building Open-Source ChatGPT From Scratch (FULLY Local)](https://www.youtube.com/watch?v=rIRkxZSn-A8)
|
main.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import requests
|
2 |
+
import json
|
3 |
+
import gradio as gr
|
4 |
+
|
5 |
+
url = "http://localhost:11434/api/generate"
|
6 |
+
|
7 |
+
headers = {
|
8 |
+
"Content-Type": "application/json",
|
9 |
+
}
|
10 |
+
|
11 |
+
conversation_history = []
|
12 |
+
|
13 |
+
|
14 |
+
def generate_response(prompt):
|
15 |
+
conversation_history.append(prompt)
|
16 |
+
|
17 |
+
full_prompt = "\n".join(conversation_history)
|
18 |
+
|
19 |
+
data = {
|
20 |
+
"model": "mistral",
|
21 |
+
"stream": False,
|
22 |
+
"prompt": full_prompt,
|
23 |
+
}
|
24 |
+
|
25 |
+
response = requests.post(url, headers=headers, data=json.dumps(data))
|
26 |
+
|
27 |
+
if response.status_code == 200:
|
28 |
+
response_text = response.text
|
29 |
+
data = json.loads(response_text)
|
30 |
+
actual_response = data["response"]
|
31 |
+
conversation_history.append(actual_response)
|
32 |
+
return actual_response
|
33 |
+
else:
|
34 |
+
print("Error:", response.status_code, response.text)
|
35 |
+
return None
|
36 |
+
|
37 |
+
|
38 |
+
iface = gr.Interface(
|
39 |
+
fn=generate_response,
|
40 |
+
inputs=gr.Textbox(lines=2, placeholder="Enter your prompt here..."),
|
41 |
+
outputs="text",
|
42 |
+
)
|
43 |
+
|
44 |
+
iface.launch(share=True)
|
requirements.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
gradio
|