Spaces:
Sleeping
Sleeping
added llama guard groq api
Browse files- app.py +16 -21
- guard/config.yml +0 -13
- guard/prompts.yml +0 -146
- requirements.txt +1 -3
app.py
CHANGED
@@ -5,9 +5,7 @@ from groq import Groq
|
|
5 |
import numpy as np
|
6 |
import wave
|
7 |
import uuid
|
8 |
-
from nemoguardrails import LLMRails, RailsConfig
|
9 |
from GoogleTTS import GoogleTTS
|
10 |
-
from langchain_openai import ChatOpenAI
|
11 |
|
12 |
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
13 |
|
@@ -53,10 +51,10 @@ def combine_audio_files(audio_files):
|
|
53 |
output.close()
|
54 |
return outfile
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
|
61 |
llm = Llama.from_pretrained(
|
62 |
repo_id="amir22010/fine_tuned_product_marketing_email_gemma_2_9b_q4_k_m", #custom fine tuned model
|
@@ -85,21 +83,18 @@ async def greet(product,description):
|
|
85 |
description, # description
|
86 |
"", # output - leave this blank for generation!
|
87 |
)
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
if warning_message:
|
101 |
-
gr.Warning(f"Guardrail triggered: {warning_message}")
|
102 |
-
chat = [output.response[0]['content']]
|
103 |
yield chat[0]
|
104 |
else:
|
105 |
output = llm.create_chat_completion(
|
|
|
5 |
import numpy as np
|
6 |
import wave
|
7 |
import uuid
|
|
|
8 |
from GoogleTTS import GoogleTTS
|
|
|
9 |
|
10 |
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
11 |
|
|
|
51 |
output.close()
|
52 |
return outfile
|
53 |
|
54 |
+
client
|
55 |
+
client = Groq(
|
56 |
+
api_key=os.getenv("GROQ_API_KEY"),
|
57 |
+
)
|
58 |
|
59 |
llm = Llama.from_pretrained(
|
60 |
repo_id="amir22010/fine_tuned_product_marketing_email_gemma_2_9b_q4_k_m", #custom fine tuned model
|
|
|
83 |
description, # description
|
84 |
"", # output - leave this blank for generation!
|
85 |
)
|
86 |
+
chat_completion = client.chat.completions.create(
|
87 |
+
messages=[
|
88 |
+
{
|
89 |
+
"role": "user",
|
90 |
+
"content": user_reques
|
91 |
+
}
|
92 |
+
],
|
93 |
+
model="llama-guard-3-8b",
|
94 |
+
)
|
95 |
+
warning_message = chat_completion.choices[0].message.content
|
96 |
+
if warning_message != 'safe':
|
97 |
+
chat = [chat_completion.choices[0].message.content]
|
|
|
|
|
|
|
98 |
yield chat[0]
|
99 |
else:
|
100 |
output = llm.create_chat_completion(
|
guard/config.yml
DELETED
@@ -1,13 +0,0 @@
|
|
1 |
-
models:
|
2 |
-
- type: llama_guard
|
3 |
-
engine: groq
|
4 |
-
model: llama-3.2-11b-text-preview
|
5 |
-
|
6 |
-
rails:
|
7 |
-
input:
|
8 |
-
flows:
|
9 |
-
- llama guard check input
|
10 |
-
|
11 |
-
output:
|
12 |
-
flows:
|
13 |
-
- llama guard check output
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
guard/prompts.yml
DELETED
@@ -1,146 +0,0 @@
|
|
1 |
-
# These are the default prompts released by Meta, with the exception of policy O7, which was added to address direct insults.
|
2 |
-
prompts:
|
3 |
-
- task: llama_guard_check_input
|
4 |
-
content: |
|
5 |
-
<s>[INST] Task: Check if there is unsafe content in 'User' messages in conversations according our safety policy with the below categories.
|
6 |
-
<BEGIN UNSAFE CONTENT CATEGORIES>
|
7 |
-
O1: Violence and Hate.
|
8 |
-
Should not
|
9 |
-
- Help people plan or engage in violence.
|
10 |
-
- Encourage people to engage in violence.
|
11 |
-
- Express hateful, derogatory, or demeaning sentiments against people based on sensitive personal characteristics like their race, color, religion, national origin, sexual orientation, gender, gender identity, or disability.
|
12 |
-
- Encourage discrimination against people based on those characteristics and should not use slurs or create insults based on those characteristics.
|
13 |
-
Can
|
14 |
-
- Provide information on violence and discrimination.
|
15 |
-
- Discuss the topics of hate and violence, and can discuss historical events involving violence.
|
16 |
-
O2: Sexual Content.
|
17 |
-
Should not
|
18 |
-
- Engage in sexually explicit (i.e., erotic) conversations and should not encourage people to engage in sexual activities.
|
19 |
-
Can
|
20 |
-
- Discuss topics related to sexuality and sexual education.
|
21 |
-
- Provide general information regarding sexual activities.
|
22 |
-
- Provide guidance on topics related to sexual health.
|
23 |
-
O3: Criminal Planning.
|
24 |
-
Should not
|
25 |
-
- Help people plan or engage in criminal activities like theft, kidnapping, or financial crimes, especially when the person indicates that they may act on the information provided to them.
|
26 |
-
- Encourage people to engage in criminal activities or condone criminal behavior.
|
27 |
-
Can
|
28 |
-
- Help people understand how crimes are committed, provided that the response is not so detailed that it could be used to provide a roadmap for future crimes.
|
29 |
-
- Help people understand how systems work that are used to prevent crimes, provided those descriptions do not provide detailed information on how to defeat those systems.
|
30 |
-
O4: Guns and Illegal Weapons.
|
31 |
-
Should not
|
32 |
-
- Assist in the planning or execution of firearm or illegal weapons crimes, especially when the person indicates that they may act on the information provided to them.
|
33 |
-
- Encourage people to engage in firearm or illegal weapons crimes or condone such behavior.
|
34 |
-
Can
|
35 |
-
- Discuss firearms and the arguments for and against firearm ownership.
|
36 |
-
O5: Regulated or Controlled Substances.
|
37 |
-
Should not
|
38 |
-
- Encourage or assist people in the trafficking, consumption, or use of regulated or controlled substances, including but not limited to illegal drugs, tobacco, alcohol, and cannabis.
|
39 |
-
- Assist or encourage people to create such substances when it is illegal to do so.
|
40 |
-
Can
|
41 |
-
- Discuss the use of regulated or controlled substances, and can provide general information on those substances (ex: what their chemical composition is and what their effects are).
|
42 |
-
- Provide information on how those substances are manufactured, provided that the information is not so detailed as to provide step-by-step instructions for their creation.
|
43 |
-
O6: Self-Harm.
|
44 |
-
Should not
|
45 |
-
- Encourage people to harm themselves.
|
46 |
-
- Romanticize or condone self-harm or suicide.
|
47 |
-
- Provide information regarding the methods of suicide or self-harm.
|
48 |
-
- Provide any information or advice, other than information regarding appropriate health resources, to people who express or imply that they wish to harm themselves.
|
49 |
-
Can
|
50 |
-
- Provide general information regarding self-harm and suicide (ex: statistics, the mental health challenges faced by those who take these actions).
|
51 |
-
Should
|
52 |
-
- Provide information regarding appropriate health resources to people who imply or express the desire to harm themselves.
|
53 |
-
O7: Offensive Language and Insults.
|
54 |
-
Should not
|
55 |
-
- Address direct insults
|
56 |
-
- Use or encourage the use of swear words, bad language, or vulgar expressions.
|
57 |
-
- Insult, offend, or demean individuals or groups based on any personal characteristics or choices.
|
58 |
-
- Encourage or support the use of offensive or derogatory language.
|
59 |
-
Can
|
60 |
-
- Discuss the impact and societal perceptions of offensive language and insults.
|
61 |
-
- Provide information on communication strategies that avoid the use of offensive language and promote respectful dialogue.
|
62 |
-
- Offer guidance on how to address or respond to offensive language or insults in a constructive manner.
|
63 |
-
<END UNSAFE CONTENT CATEGORIES>
|
64 |
-
|
65 |
-
<BEGIN CONVERSATION>
|
66 |
-
User: {{ user_input }}
|
67 |
-
<END CONVERSATION>
|
68 |
-
|
69 |
-
Provide your safety assessment for User in the above conversation:
|
70 |
-
- First line must read 'safe' or 'unsafe'.
|
71 |
-
- If unsafe, a second line must include a comma-separated list of violated categories. [/INST]
|
72 |
-
|
73 |
-
|
74 |
-
# Currently, the unsafe content categories are the same for both llama_guard_check_input and
|
75 |
-
# llama_guard_check_output prompts. Only the conversation placeholder is different.
|
76 |
-
# Still, we keep them separate to keep the taxonomies for input and output independently modifiable.
|
77 |
-
- task: llama_guard_check_output
|
78 |
-
content: |
|
79 |
-
<s>[INST] Task: Check if there is unsafe content in 'Agent' messages in conversations according our safety policy with the below categories.
|
80 |
-
<BEGIN UNSAFE CONTENT CATEGORIES>
|
81 |
-
O1: Violence and Hate.
|
82 |
-
Should not
|
83 |
-
- Help people plan or engage in violence.
|
84 |
-
- Encourage people to engage in violence.
|
85 |
-
- Express hateful, derogatory, or demeaning sentiments against people based on sensitive personal characteristics like their race, color, religion, national origin, sexual orientation, gender, gender identity, or disability.
|
86 |
-
- Encourage discrimination against people based on those characteristics and should not use slurs or create insults based on those characteristics.
|
87 |
-
Can
|
88 |
-
- Provide information on violence and discrimination.
|
89 |
-
- Discuss the topics of hate and violence, and can discuss historical events involving violence.
|
90 |
-
O2: Sexual Content.
|
91 |
-
Should not
|
92 |
-
- Engage in sexually explicit (i.e., erotic) conversations and should not encourage people to engage in sexual activities.
|
93 |
-
Can
|
94 |
-
- Discuss topics related to sexuality and sexual education.
|
95 |
-
- Provide general information regarding sexual activities.
|
96 |
-
- Provide guidance on topics related to sexual health.
|
97 |
-
O3: Criminal Planning.
|
98 |
-
Should not
|
99 |
-
- Help people plan or engage in criminal activities like theft, kidnapping, or financial crimes, especially when the person indicates that they may act on the information provided to them.
|
100 |
-
- Encourage people to engage in criminal activities or condone criminal behavior.
|
101 |
-
Can
|
102 |
-
- Help people understand how crimes are committed, provided that the response is not so detailed that it could be used to provide a roadmap for future crimes.
|
103 |
-
- Help people understand how systems work that are used to prevent crimes, provided those descriptions do not provide detailed information on how to defeat those systems.
|
104 |
-
O4: Guns and Illegal Weapons.
|
105 |
-
Should not
|
106 |
-
- Assist in the planning or execution of firearm or illegal weapons crimes, especially when the person indicates that they may act on the information provided to them.
|
107 |
-
- Encourage people to engage in firearm or illegal weapons crimes or condone such behavior.
|
108 |
-
Can
|
109 |
-
- Discuss firearms and the arguments for and against firearm ownership.
|
110 |
-
O5: Regulated or Controlled Substances.
|
111 |
-
Should not
|
112 |
-
- Encourage or assist people in the trafficking, consumption, or use of regulated or controlled substances, including but not limited to illegal drugs, tobacco, alcohol, and cannabis.
|
113 |
-
- Assist or encourage people to create such substances when it is illegal to do so.
|
114 |
-
Can
|
115 |
-
- Discuss the use of regulated or controlled substances, and can provide general information on those substances (ex: what their chemical composition is and what their effects are).
|
116 |
-
- Provide information on how those substances are manufactured, provided that the information is not so detailed as to provide step-by-step instructions for their creation.
|
117 |
-
O6: Self-Harm.
|
118 |
-
Should not
|
119 |
-
- Encourage people to harm themselves.
|
120 |
-
- Romanticize or condone self-harm or suicide.
|
121 |
-
- Provide information regarding the methods of suicide or self-harm.
|
122 |
-
- Provide any information or advice, other than information regarding appropriate health resources, to people who express or imply that they wish to harm themselves.
|
123 |
-
Can
|
124 |
-
- Provide general information regarding self-harm and suicide (ex: statistics, the mental health challenges faced by those who take these actions).
|
125 |
-
Should
|
126 |
-
- Provide information regarding appropriate health resources to people who imply or express the desire to harm themselves.
|
127 |
-
O7: Offensive Language and Insults.
|
128 |
-
Should not
|
129 |
-
- Address direct insults
|
130 |
-
- Use or encourage the use of swear words, bad language, or vulgar expressions.
|
131 |
-
- Insult, offend, or demean individuals or groups based on any personal characteristics or choices.
|
132 |
-
- Encourage or support the use of offensive or derogatory language.
|
133 |
-
Can
|
134 |
-
- Discuss the impact and societal perceptions of offensive language and insults.
|
135 |
-
- Provide information on communication strategies that avoid the use of offensive language and promote respectful dialogue.
|
136 |
-
- Offer guidance on how to address or respond to offensive language or insults in a constructive manner.
|
137 |
-
<END UNSAFE CONTENT CATEGORIES>
|
138 |
-
|
139 |
-
<BEGIN CONVERSATION>
|
140 |
-
User: {{ user_input }}
|
141 |
-
|
142 |
-
Agent: {{ bot_response }}
|
143 |
-
<END CONVERSATION>
|
144 |
-
|
145 |
-
Provide your safety assessment for Agent in the above conversation:
|
146 |
-
- First line must read 'safe' or 'unsafe'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
requirements.txt
CHANGED
@@ -4,6 +4,4 @@ python-multipart==0.0.12
|
|
4 |
llama-cpp-python
|
5 |
groq
|
6 |
transformers
|
7 |
-
|
8 |
-
google-tts
|
9 |
-
langchain-openai
|
|
|
4 |
llama-cpp-python
|
5 |
groq
|
6 |
transformers
|
7 |
+
google-tts
|
|
|
|