-
Notifications
You must be signed in to change notification settings - Fork 438
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Add documentation for GroqChatTarget
- Loading branch information
Showing
3 changed files
with
171 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"id": "0", | ||
"metadata": { | ||
"lines_to_next_cell": 0 | ||
}, | ||
"source": [ | ||
"# GroqChatTarget\n", | ||
"\n", | ||
"This example demonstrates how to use the `GroqChatTarget` class in PyRIT to send a prompt\n", | ||
"to a Groq model and retrieve a response.\n", | ||
"\n", | ||
"## Setup\n", | ||
"Before running this example, you need to set the following environment variables:\n", | ||
"\n", | ||
"```\n", | ||
"export GROQ_API_KEY=\"your_api_key_here\"\n", | ||
"export GROQ_MODEL_NAME=\"llama3-8b-8192\"\n", | ||
"```\n", | ||
"\n", | ||
"Alternatively, you can pass these values as arguments when initializing `GroqChatTarget`:\n", | ||
"\n", | ||
"```python\n", | ||
"groq_target = GroqChatTarget(model_name=\"llama3-8b-8192\", api_key=\"your_api_key_here\")\n", | ||
"```\n", | ||
"\n", | ||
"You can also limit the request rate using `max_requests_per_minute`.\n", | ||
"\n", | ||
"## Example\n", | ||
"The following code initializes `GroqChatTarget`, sends a prompt using `PromptSendingOrchestrator`,\n", | ||
"and retrieves a response." | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": null, | ||
"id": "1", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stderr", | ||
"output_type": "stream", | ||
"text": [ | ||
"None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.\n" | ||
] | ||
}, | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"\u001b[22m\u001b[39mConversation ID: 7ae4ae98-a23b-4330-9c3e-5fd9e8c37854\n", | ||
"\u001b[1m\u001b[34muser: Why is the sky blue ?\n", | ||
"\u001b[22m\u001b[33massistant: The sky appears blue because of a phenomenon called Rayleigh scattering, which is the scattering of light by small particles or molecules in the atmosphere.\n", | ||
"\n", | ||
"When sunlight enters Earth's atmosphere, it encounters tiny molecules of gases such as nitrogen (N2) and oxygen (O2). These molecules scatter the light in all directions, but they scatter shorter (blue) wavelengths more than longer (red) wavelengths. This is known as Rayleigh scattering.\n", | ||
"\n", | ||
"As a result of this scattering, the blue light is dispersed throughout the atmosphere, reaching our eyes from all directions. This is why the sky appears blue during the daytime, as the blue light is being scattered in all directions and reaching our eyes from all parts of the sky.\n", | ||
"\n", | ||
"In addition to Rayleigh scattering, there are other factors that can affect the color of the sky, such as:\n", | ||
"\n", | ||
"* Mie scattering: This is the scattering of light by larger particles, such as dust, pollen, and water droplets. Mie scattering can give the sky a more orange or pinkish hue during sunrise and sunset.\n", | ||
"* Scattering by cloud droplets: Clouds can scatter light in a way that gives the sky a more white or gray appearance.\n", | ||
"* Atmospheric conditions: Factors such as pollution, dust, and water vapor can also affect the color of the sky, making it appear more hazy or brownish.\n", | ||
"\n", | ||
"Overall, the combination of Rayleigh scattering and other atmospheric effects is what gives the sky its blue color during the daytime.\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"\n", | ||
"from pyrit.common import IN_MEMORY, initialize_pyrit\n", | ||
"from pyrit.orchestrator import PromptSendingOrchestrator\n", | ||
"from pyrit.prompt_target import GroqChatTarget\n", | ||
"\n", | ||
"initialize_pyrit(memory_db_type=IN_MEMORY)\n", | ||
"\n", | ||
"groq_target = GroqChatTarget()\n", | ||
"\n", | ||
"prompt = \"Why is the sky blue ?\"\n", | ||
"\n", | ||
"orchestrator = PromptSendingOrchestrator(objective_target=groq_target)\n", | ||
"\n", | ||
"response = await orchestrator.send_prompts_async(prompt_list=[prompt]) # type: ignore\n", | ||
"await orchestrator.print_conversations_async() # type: ignore" | ||
] | ||
} | ||
], | ||
"metadata": { | ||
"jupytext": { | ||
"cell_metadata_filter": "-all" | ||
}, | ||
"kernelspec": { | ||
"display_name": "pyrt_env", | ||
"language": "python", | ||
"name": "pyrt_env" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.11.2" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# --- | ||
# jupyter: | ||
# jupytext: | ||
# cell_metadata_filter: -all | ||
# text_representation: | ||
# extension: .py | ||
# format_name: percent | ||
# format_version: '1.3' | ||
# jupytext_version: 1.16.7 | ||
# kernelspec: | ||
# display_name: pyrt_env | ||
# language: python | ||
# name: pyrt_env | ||
# --- | ||
|
||
# %% [markdown] | ||
# # GroqChatTarget | ||
# | ||
# This example demonstrates how to use the `GroqChatTarget` class in PyRIT to send a prompt | ||
# to a Groq model and retrieve a response. | ||
# | ||
# ## Setup | ||
# Before running this example, you need to set the following environment variables: | ||
# | ||
# ``` | ||
# export GROQ_API_KEY="your_api_key_here" | ||
# export GROQ_MODEL_NAME="llama3-8b-8192" | ||
# ``` | ||
# | ||
# Alternatively, you can pass these values as arguments when initializing `GroqChatTarget`: | ||
# | ||
# ```python | ||
# groq_target = GroqChatTarget(model_name="llama3-8b-8192", api_key="your_api_key_here") | ||
# ``` | ||
# | ||
# You can also limit the request rate using `max_requests_per_minute`. | ||
# | ||
# ## Example | ||
# The following code initializes `GroqChatTarget`, sends a prompt using `PromptSendingOrchestrator`, | ||
# and retrieves a response. | ||
# %% | ||
|
||
from pyrit.common import IN_MEMORY, initialize_pyrit | ||
from pyrit.orchestrator import PromptSendingOrchestrator | ||
from pyrit.prompt_target import GroqChatTarget | ||
|
||
initialize_pyrit(memory_db_type=IN_MEMORY) | ||
|
||
groq_target = GroqChatTarget() | ||
|
||
prompt = "Why is the sky blue ?" | ||
|
||
orchestrator = PromptSendingOrchestrator(objective_target=groq_target) | ||
|
||
response = await orchestrator.send_prompts_async(prompt_list=[prompt]) # type: ignore | ||
await orchestrator.print_conversations_async() # type: ignore |