diff --git a/docs.json b/docs.json index 8496d13671..73d92cbf45 100644 --- a/docs.json +++ b/docs.json @@ -2494,6 +2494,10 @@ "source": "/models/hosting/:slug*", "destination": "/platform/hosting/:slug*" }, + { + "source": "models/support/rotate_revoke_access", + "destination": "/models/support/find_api_key" + }, { "source": "/models/track/launch/*", "destination": "/platform/launch" diff --git a/inference.mdx b/inference.mdx index 0c29a59668..59b0d91156 100644 --- a/inference.mdx +++ b/inference.mdx @@ -23,7 +23,7 @@ client = openai.OpenAI( # The custom base URL points to W&B Inference base_url='https://api.inference.wandb.ai/v1', - # Get your API key from https://wandb.ai/authorize + # Create an API key at https://wandb.ai/settings api_key="", # Optional: Team and project for usage tracking @@ -53,4 +53,4 @@ print(response.choices[0].message.content) For information about pricing, usage limits, and credits, see [Usage Information and Limits](/inference/usage-limits/). - \ No newline at end of file + diff --git a/inference/api-reference.mdx b/inference/api-reference.mdx index 5de0d45b65..440c849d49 100644 --- a/inference/api-reference.mdx +++ b/inference/api-reference.mdx @@ -32,7 +32,7 @@ The W&B Inference API provides OpenAI-compatible endpoints for interacting with ## Authentication -All API requests require authentication using your W&B API key. You can find your API key at [wandb.ai/authorize](https://wandb.ai/authorize). +All API requests require authentication using your W&B API key. Create an API key at [wandb.ai/settings](https://wandb.ai/settings). Include your API key in the request headers: - For OpenAI SDK: Set as `api_key` parameter @@ -46,4 +46,4 @@ See [API Errors](/inference/api-reference/errors) for a complete list of error c - Try the [usage examples](/inference/examples) to see the API in action - Explore models in the [UI](/inference/ui-guide) -- Check [usage limits](/inference/usage-limits) for your account \ No newline at end of file +- Check [usage limits](/inference/usage-limits) for your account diff --git a/inference/api-reference/chat-completions.mdx b/inference/api-reference/chat-completions.mdx index 386cfab86a..efd55ef0da 100644 --- a/inference/api-reference/chat-completions.mdx +++ b/inference/api-reference/chat-completions.mdx @@ -24,7 +24,7 @@ client = openai.OpenAI( # The custom base URL points to W&B Inference base_url='https://api.inference.wandb.ai/v1', - # Get your API key from https://wandb.ai/authorize + # Create an API key at https://wandb.ai/settings # Consider setting it in the environment as OPENAI_API_KEY instead for safety api_key="", diff --git a/inference/examples.mdx b/inference/examples.mdx index 99b75809be..03fb0016e2 100644 --- a/inference/examples.mdx +++ b/inference/examples.mdx @@ -33,7 +33,7 @@ weave.init("/") client = openai.OpenAI( base_url='https://api.inference.wandb.ai/v1', - # Get your API key from https://wandb.ai/authorize + # Create an API key at https://wandb.ai/settings api_key="", # Optional: Team and project for usage tracking @@ -94,7 +94,7 @@ class WBInferenceModel(weave.Model): def predict(self, prompt: str) -> str: client = openai.OpenAI( base_url="https://api.inference.wandb.ai/v1", - # Get your API key from https://wandb.ai/authorize + # Create an API key at https://wandb.ai/settings api_key="", # Optional: Team and project for usage tracking project="/", diff --git a/inference/prerequisites.mdx b/inference/prerequisites.mdx index bae06abe1c..daa92a7308 100644 --- a/inference/prerequisites.mdx +++ b/inference/prerequisites.mdx @@ -5,6 +5,8 @@ description: > Set up your environment to use W&B Inference --- +import ApiKeyCreate from "/snippets/en/_includes/api-key-create.mdx"; + Complete these steps before using the W&B Inference service through the API or UI. @@ -19,7 +21,8 @@ You need these items to access W&B Inference: Sign up at [W&B](https://app.wandb.ai/login?signup=true) 2. **A W&B API key** - Get your API key at [https://wandb.ai/authorize](https://wandb.ai/authorize) + + 3. **A W&B project** Create a project in your W&B account to track usage @@ -50,4 +53,4 @@ After completing the prerequisites: - Check the [API reference](/inference/api-reference/) to learn about available endpoints - Try the [usage examples](/inference/examples/) to see the service in action -- Use the [UI guide](/inference/ui-guide/) to access models through the web interface \ No newline at end of file +- Use the [UI guide](/inference/ui-guide/) to access models through the web interface diff --git a/inference/response-settings/json-mode.mdx b/inference/response-settings/json-mode.mdx index a4f10959eb..46c564382b 100644 --- a/inference/response-settings/json-mode.mdx +++ b/inference/response-settings/json-mode.mdx @@ -15,7 +15,7 @@ To enable JSON mode, specify it as the "response_format" in the request: client = openai.OpenAI( base_url='https://api.inference.wandb.ai/v1', - api_key="", # Available from https://wandb.ai/authorize + api_key="", # Create an API key at https://wandb.ai/settings ) response = client.chat.completions.create( diff --git a/inference/response-settings/reasoning.mdx b/inference/response-settings/reasoning.mdx index 68cd39d13c..15daa2a746 100644 --- a/inference/response-settings/reasoning.mdx +++ b/inference/response-settings/reasoning.mdx @@ -16,7 +16,7 @@ You can find reasoning information in the `reasoning_content` field of responses client = openai.OpenAI( base_url='https://api.inference.wandb.ai/v1', - api_key="", # Available from https://wandb.ai/authorize + api_key="", # Create an API key at https://wandb.ai/settings ) response = client.chat.completions.create( diff --git a/inference/response-settings/streaming.mdx b/inference/response-settings/streaming.mdx index b93eaaa7ec..0cd7cf733c 100644 --- a/inference/response-settings/streaming.mdx +++ b/inference/response-settings/streaming.mdx @@ -19,7 +19,7 @@ too long before output starts. client = openai.OpenAI( base_url='https://api.inference.wandb.ai/v1', - api_key="", # Available from https://wandb.ai/authorize + api_key="", # Create an API key at https://wandb.ai/settings ) stream = client.chat.completions.create( diff --git a/inference/response-settings/structured-output.mdx b/inference/response-settings/structured-output.mdx index 50bf45e62b..3b04e24d74 100644 --- a/inference/response-settings/structured-output.mdx +++ b/inference/response-settings/structured-output.mdx @@ -15,7 +15,7 @@ To enable structured output, specify `json_schema` as the `response_format` type client = openai.OpenAI( base_url='https://api.inference.wandb.ai/v1', - api_key="", # Available from https://wandb.ai/authorize + api_key="", # Create an API key at https://wandb.ai/settings ) response = client.chat.completions.create( diff --git a/inference/response-settings/tool-calling.mdx b/inference/response-settings/tool-calling.mdx index 01a0af9a26..eba655e04d 100644 --- a/inference/response-settings/tool-calling.mdx +++ b/inference/response-settings/tool-calling.mdx @@ -14,7 +14,7 @@ To call functions, specify them and their arguments as part of your request to t client = openai.OpenAI( base_url='https://api.inference.wandb.ai/v1', - api_key="", # Available from https://wandb.ai/authorize + api_key="", # Create an API key at https://wandb.ai/settings ) response = client.chat.completions.create( diff --git a/ja/models/support/rotate_revoke_access.mdx b/ja/models/support/rotate_revoke_access.mdx deleted file mode 100644 index f960db6dbf..0000000000 --- a/ja/models/support/rotate_revoke_access.mdx +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: アクセスを変更または無効にするにはどうすればよいですか? -support: - - administrator - - security -toc_hide: true -type: docs ---- -個人およびサービスアカウントのキーは、ローテーションまたは取り消すことができます。新しい API キーまたはサービスアカウント ユーザーを作成し、新しいキーを使用するようにスクリプトを再設定してください。再設定後、プロフィールまたはチームから古い API キーを削除してください。 \ No newline at end of file diff --git a/ko/models/support/rotate_revoke_access.mdx b/ko/models/support/rotate_revoke_access.mdx deleted file mode 100644 index b91d07c5ee..0000000000 --- a/ko/models/support/rotate_revoke_access.mdx +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: How can I rotate or revoke access? -support: -- administrator -- security -toc_hide: true -type: docs ---- - -개인 및 서비스 계정 키는 로테이션하거나 해지할 수 있습니다. 새 API 키 또는 서비스 계정 사용자를 생성한 다음 새 키를 사용하도록 스크립트 를 재구성합니다. 재구성 후 프로필 또는 팀에서 이전 API 키를 제거하세요. diff --git a/models/integrations/add-wandb-to-any-library.mdx b/models/integrations/add-wandb-to-any-library.mdx index ea7e3ab903..0d42ec8118 100644 --- a/models/integrations/add-wandb-to-any-library.mdx +++ b/models/integrations/add-wandb-to-any-library.mdx @@ -2,6 +2,8 @@ title: Add wandb to any library --- +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + ## Add wandb to any library This guide provides best practices on how to integrate W&B into your Python library to get powerful Experiment Tracking, GPU and System Monitoring, Model Checkpointing, and more for your own library. @@ -75,13 +77,10 @@ dev = [ An API key authenticates a client or machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. #### Install the `wandb` library and log in @@ -405,4 +404,4 @@ If your library would like to leverage W&B hyper-parameter tuning, [W&B Sweeps]( You can also see what an advanced W&B integrations look like in the following integrations. Note most integrations will not be as complex as these: * [Hugging Face Transformers `WandbCallback`](https://github.com/huggingface/transformers/blob/49629e7ba8ef68476e08b671d6fc71288c2f16f1/src/transformers/integrations.py#L639) -* [PyTorch Lightning `WandbLogger`](https://github.com/Lightning-AI/lightning/blob/18f7f2d3958fb60fcb17b4cb69594530e83c217f/src/pytorch_lightning/loggers/wandb.py#L53) \ No newline at end of file +* [PyTorch Lightning `WandbLogger`](https://github.com/Lightning-AI/lightning/blob/18f7f2d3958fb60fcb17b4cb69594530e83c217f/src/pytorch_lightning/loggers/wandb.py#L53) diff --git a/models/integrations/cohere-fine-tuning.mdx b/models/integrations/cohere-fine-tuning.mdx index 1388f85051..07f0aeeba8 100644 --- a/models/integrations/cohere-fine-tuning.mdx +++ b/models/integrations/cohere-fine-tuning.mdx @@ -10,7 +10,7 @@ This [guide from Cohere](https://docs.cohere.com/page/convfinqa-finetuning-wandb To add Cohere fine-tuning logging to your W&B workspace: -1. Create a `WandbConfig` with your W&B API key, W&B `entity` and `project` name. You can find your W&B API key at https://wandb.ai/authorize +1. Create a `WandbConfig` with your W&B API key, W&B `entity` and `project` name. Create an API key at https://wandb.ai/settings 2. Pass this config to the `FinetunedModel` object along with your model name, dataset and hyperparameters to kick off your fine-tuning run. @@ -57,4 +57,4 @@ In addition, you can rename your runs, add notes or create tags to group them. ## Resources -* [Cohere Fine-tuning Example](https://github.com/cohere-ai/notebooks/blob/kkt_ft_cookbooks/notebooks/finetuning/convfinqa_finetuning_wandb.ipynb) \ No newline at end of file +* [Cohere Fine-tuning Example](https://github.com/cohere-ai/notebooks/blob/kkt_ft_cookbooks/notebooks/finetuning/convfinqa_finetuning_wandb.ipynb) diff --git a/models/integrations/dagster.mdx b/models/integrations/dagster.mdx index 6c87c19cd8..46a32673ee 100644 --- a/models/integrations/dagster.mdx +++ b/models/integrations/dagster.mdx @@ -22,12 +22,12 @@ You will need the following resources to use Dagster within W&B: 2. **W&B entity (user or team)**: An entity is a username or team name where you send W&B Runs and Artifacts. Make sure to create your account or team entity in the W&B App UI before you log runs. If you do not specify ain entity, the run will be sent to your default entity, which is usually your username. Change your default entity in your settings under **Project Defaults**. 3. **W&B project**: The name of the project where [W&B Runs](/models/runs/) are stored. -Find your W&B entity by checking the profile page for that user or team in the W&B App. You can use a pre-existing W&B project or create a new one. New projects can be created on the W&B App homepage or on user/team profile page. If a project does not exist it will be automatically created when you first use it. The proceeding instructions demonstrate how to get an API key: +Find your W&B entity by checking the profile page for that user or team in the W&B App. You can use a pre-existing W&B project or create a new one. New projects can be created on the W&B App homepage or on user/team profile page. If a project does not exist it will be automatically created when you first use it. -### How to get an API key +### Set up your API key 1. [Log in to W&B](https://wandb.ai/login). Note: if you are using W&B Server ask your admin for the instance host name. -2. Collect your API key by navigating to the [authorize page](https://wandb.ai/authorize) or in your user/team settings. For a production environment we recommend using a [service account](/models/support/service_account_useful/) to own that key. -3. Set an environment variable for that API key export `WANDB_API_KEY=YOUR_KEY`. +2. Create an API key at [User Settings](https://wandb.ai/settings). For a production environment we recommend using a [service account](/models/support/service_account_useful/) to own that key. +3. Set an environment variable for that API key: `export WANDB_API_KEY=YOUR_KEY`. The proceeding examples demonstrate where to specify your API key in your Dagster code. Make sure to specify your entity and project name within the `wandb_config` nested dictionary. You can pass different `wandb_config` values to different ops/assets if you want to use a different W&B Project. For more information about possible keys you can pass, see the Configuration section below. diff --git a/models/integrations/databricks.mdx b/models/integrations/databricks.mdx index 8c1da34960..c04a28b2be 100644 --- a/models/integrations/databricks.mdx +++ b/models/integrations/databricks.mdx @@ -28,7 +28,7 @@ W&B integrates with [Databricks](https://www.databricks.com/) by customizing the # without security add-on databricks secrets create-scope --scope wandb --initial-manage-principal users - # Add your api_key from: https://app.wandb.ai/authorize + # Create an API key at https://wandb.ai/settings databricks secrets put --scope wandb --key api_key ``` @@ -57,4 +57,4 @@ import os # These will not be necessary in the future os.environ["WANDB_ENTITY"] = "my-entity" os.environ["WANDB_PROJECT"] = "my-project-that-exists" -``` \ No newline at end of file +``` diff --git a/models/integrations/deepchem.mdx b/models/integrations/deepchem.mdx index b7eb561023..d29a35d286 100644 --- a/models/integrations/deepchem.mdx +++ b/models/integrations/deepchem.mdx @@ -2,6 +2,9 @@ description: How to integrate W&B with DeepChem library. title: DeepChem --- + +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + The [DeepChem library](https://github.com/deepchem/deepchem) provides open source tools that democratize the use of deep-learning in drug discovery, materials science, chemistry, and biology. This W&B integration adds simple and easy-to-use experiment tracking and model checkpointing while training models using DeepChem. ## DeepChem logging in 3 lines of code @@ -30,13 +33,10 @@ Set up W&B for DeepChem models of type [KerasModel](https://deepchem.readthedocs An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ### Install the `wandb` library and log in diff --git a/models/integrations/fastai.mdx b/models/integrations/fastai.mdx index 99be822d0e..1a9fc52a62 100644 --- a/models/integrations/fastai.mdx +++ b/models/integrations/fastai.mdx @@ -1,19 +1,19 @@ --- title: fastai --- -If you're using **fastai** to train your models, W&B has an easy integration using the `WandbCallback`. Explore the details in[ interactive docs with examples →](https://app.wandb.ai/borisd13/demo_config/reports/Visualize-track-compare-Fastai-models--Vmlldzo4MzAyNA) + +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + +You can integrate **fastai** with W&B using the `WandbCallback` class. Check out these [interactive docs with examples](https://app.wandb.ai/borisd13/demo_config/reports/Visualize-track-compare-Fastai-models--Vmlldzo4MzAyNA) for more details. ## Sign up and create an API key An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ## Install the `wandb` library and log in @@ -252,4 +252,4 @@ notebook_launcher(train, num_processes=2) ## Examples * [Visualize, track, and compare Fastai models](https://app.wandb.ai/borisd13/demo_config/reports/Visualize-track-compare-Fastai-models--Vmlldzo4MzAyNA): A thoroughly documented walkthrough. -* [Image Segmentation on CamVid](https://bit.ly/fastai-wandb): A sample use case of the integration. \ No newline at end of file +* [Image Segmentation on CamVid](https://bit.ly/fastai-wandb): A sample use case of the integration. diff --git a/models/integrations/huggingface.mdx b/models/integrations/huggingface.mdx index e2bad511a1..b9cc558e2b 100644 --- a/models/integrations/huggingface.mdx +++ b/models/integrations/huggingface.mdx @@ -1,7 +1,9 @@ --- title: Hugging Face Transformers --- + import { ColabLink } from '/snippets/en/_includes/colab-link.mdx'; +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; @@ -32,13 +34,10 @@ If you'd rather dive straight into working code, check out this [Google Colab](h An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ### Install the `wandb` library and log in @@ -537,4 +536,4 @@ Read the full report [here](https://wandb.ai/ayush-thakur/huggingface/reports/Ho ## Get help or request features -For any issues, questions, or feature requests for the Hugging Face W&B integration, feel free to post in [this thread on the Hugging Face forums](https://discuss.huggingface.co/t/logging-experiment-tracking-with-w-b/498) or open an issue on the Hugging Face [Transformers GitHub repo](https://github.com/huggingface/transformers). \ No newline at end of file +For any issues, questions, or feature requests for the Hugging Face W&B integration, feel free to post in [this thread on the Hugging Face forums](https://discuss.huggingface.co/t/logging-experiment-tracking-with-w-b/498) or open an issue on the Hugging Face [Transformers GitHub repo](https://github.com/huggingface/transformers). diff --git a/models/integrations/kubeflow-pipelines-kfp.mdx b/models/integrations/kubeflow-pipelines-kfp.mdx index 4c2136e8ab..98c10233ed 100644 --- a/models/integrations/kubeflow-pipelines-kfp.mdx +++ b/models/integrations/kubeflow-pipelines-kfp.mdx @@ -3,6 +3,7 @@ description: How to integrate W&B with Kubeflow Pipelines. title: Kubeflow Pipelines (kfp) --- +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; [Kubeflow Pipelines (kfp) ](https://www.kubeflow.org/docs/components/pipelines/overview/)is a platform for building and deploying portable, scalable machine learning (ML) workflows based on Docker containers. @@ -14,13 +15,10 @@ This feature was enabled in `wandb==0.12.11` and requires `kfp<2.0.0` An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ## Install the `wandb` library and log in @@ -191,4 +189,4 @@ def train_model( trainer = Trainer(logger=WandbLogger()) ... # do training -``` \ No newline at end of file +``` diff --git a/models/integrations/lightning.mdx b/models/integrations/lightning.mdx index afbd71e7fc..a902f7e30c 100644 --- a/models/integrations/lightning.mdx +++ b/models/integrations/lightning.mdx @@ -1,7 +1,9 @@ --- title: PyTorch Lightning --- + import { ColabLink } from '/snippets/en/_includes/colab-link.mdx'; +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; @@ -50,13 +52,10 @@ fabric.log_dict({"important_metric": important_metric}) An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ### Install the `wandb` library and log in @@ -588,4 +587,4 @@ if os.environ.get("LOCAL_RANK", None) is None: os.environ["WANDB_DIR"] = wandb.run.dir ``` -If they are, you can use `os.environ["WANDB_DIR"]` to set up the model checkpoints directory. This way, any non-zero rank process can access `wandb.run.dir`. \ No newline at end of file +If they are, you can use `os.environ["WANDB_DIR"]` to set up the model checkpoints directory. This way, any non-zero rank process can access `wandb.run.dir`. diff --git a/models/integrations/metaflow.mdx b/models/integrations/metaflow.mdx index 04932f4e2f..581298a123 100644 --- a/models/integrations/metaflow.mdx +++ b/models/integrations/metaflow.mdx @@ -2,6 +2,9 @@ description: How to integrate W&B with Metaflow. title: Metaflow --- + +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + ## Overview [Metaflow](https://docs.metaflow.org) is a framework created by [Netflix](https://netflixtechblog.com) for creating and running ML workflows. @@ -17,13 +20,10 @@ This integration lets users apply decorators to Metaflow [steps and flows](https An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ### Install the `wandb` library and log in @@ -197,4 +197,4 @@ We currently support these types: Yes. If you have an artifact that is an output of step A and an input to step B, we automatically construct the lineage DAG for you. -For an example of this behavior, please see this[ notebook](https://colab.research.google.com/drive/1wZG-jYzPelk8Rs2gIM3a71uEoG46u_nG#scrollTo=DQQVaKS0TmDU) and its corresponding [W&B Artifacts page](https://wandb.ai/megatruong/metaflow_integration/artifacts/dataset/raw_df/7d14e6578d3f1cfc72fe/graph) \ No newline at end of file +For an example of this behavior, please see this [notebook](https://colab.research.google.com/drive/1wZG-jYzPelk8Rs2gIM3a71uEoG46u_nG#scrollTo=DQQVaKS0TmDU) and its corresponding [W&B Artifacts page](https://wandb.ai/megatruong/metaflow_integration/artifacts/dataset/raw_df/7d14e6578d3f1cfc72fe/graph) diff --git a/models/integrations/paddledetection.mdx b/models/integrations/paddledetection.mdx index e5a34a5a72..de18744e39 100644 --- a/models/integrations/paddledetection.mdx +++ b/models/integrations/paddledetection.mdx @@ -2,7 +2,9 @@ description: How to integrate W&B with PaddleDetection. title: PaddleDetection --- + import { ColabLink } from '/snippets/en/_includes/colab-link.mdx'; +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; @@ -18,13 +20,10 @@ The PaddleDetection `WandbLogger` logs your training and evaluation metrics to W An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ## Install the `wandb` library and log in @@ -107,4 +106,4 @@ When you run your `train.py` file, it generates a link to your W&B Dashboard. ## Feedback or issues -If you have any feedback or issues about the W&B integration, open an issue on the [PaddleDetection GitHub](https://github.com/PaddlePaddle/PaddleDetection) or email support@wandb.com. \ No newline at end of file +If you have any feedback or issues about the W&B integration, open an issue on the [PaddleDetection GitHub](https://github.com/PaddlePaddle/PaddleDetection) or email support@wandb.com. diff --git a/models/integrations/paddleocr.mdx b/models/integrations/paddleocr.mdx index a991a4456e..c4b6ffd378 100644 --- a/models/integrations/paddleocr.mdx +++ b/models/integrations/paddleocr.mdx @@ -2,6 +2,9 @@ description: How to integrate W&B with PaddleOCR. title: PaddleOCR --- + +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and apply them into practice implemented in PaddlePaddle. PaddleOCR support a variety of cutting-edge algorithms related to OCR, and developed industrial solution. PaddleOCR now comes with a W&B integration for logging training and evaluation metrics along with model checkpoints with corresponding metadata. ## Example Blog & Colab @@ -12,13 +15,10 @@ title: PaddleOCR An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ## Install the `wandb` library and log in @@ -103,4 +103,4 @@ Once you run your `train.py` file with W&B turned on, a link will be generated t ## Feedback or issues -If you have any feedback or issues about the W&B integration, open an issue on the [PaddleOCR GitHub](https://github.com/PaddlePaddle/PaddleOCR) or email support@wandb.com. \ No newline at end of file +If you have any feedback or issues about the W&B integration, open an issue on the [PaddleOCR GitHub](https://github.com/PaddlePaddle/PaddleOCR) or email support@wandb.com. diff --git a/models/integrations/pytorch-geometric.mdx b/models/integrations/pytorch-geometric.mdx index aea482269f..a5fa8ab03c 100644 --- a/models/integrations/pytorch-geometric.mdx +++ b/models/integrations/pytorch-geometric.mdx @@ -1,6 +1,9 @@ --- title: PyTorch Geometric --- + +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + [PyTorch Geometric](https://github.com/pyg-team/pytorch_geometric) or PyG is one of the most popular libraries for geometric deep learning and W&B works extremely well with it for visualizing graphs and tracking experiments. After you have installed Pytorch Geometric, follow these steps to get started. @@ -9,13 +12,10 @@ After you have installed Pytorch Geometric, follow these steps to get started. An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ## Install the `wandb` library and log in @@ -169,4 +169,4 @@ with wandb.init(project="my_project", entity="my_entity") as run: - [Recommending Amazon Products using Graph Neural Networks in PyTorch Geometric](https://wandb.ai/manan-goel/gnn-recommender/reports/Recommending-Amazon-Products-using-Graph-Neural-Networks-in-PyTorch-Geometric--VmlldzozMTA3MzYw#what-does-the-data-look-like?) - [Point Cloud Classification using PyTorch Geometric](https://wandb.ai/geekyrakshit/pyg-point-cloud/reports/Point-Cloud-Classification-using-PyTorch-Geometric--VmlldzozMTExMTE3) -- [Point Cloud Segmentation using PyTorch Geometric](https://wandb.ai/wandb/point-cloud-segmentation/reports/Point-Cloud-Segmentation-using-Dynamic-Graph-CNN--VmlldzozMTk5MDcy) \ No newline at end of file +- [Point Cloud Segmentation using PyTorch Geometric](https://wandb.ai/wandb/point-cloud-segmentation/reports/Point-Cloud-Segmentation-using-Dynamic-Graph-CNN--VmlldzozMTk5MDcy) diff --git a/models/integrations/scikit.mdx b/models/integrations/scikit.mdx index 9c0e7779b9..602be7a4db 100644 --- a/models/integrations/scikit.mdx +++ b/models/integrations/scikit.mdx @@ -1,6 +1,9 @@ --- title: Scikit-Learn --- + +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + You can use wandb to visualize and compare your scikit-learn models' performance with just a few lines of code. [Try an example →](https://wandb.me/scikit-colab) ## Get started @@ -9,13 +12,10 @@ You can use wandb to visualize and compare your scikit-learn models' performance An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ### Install the `wandb` library and log in @@ -337,4 +337,4 @@ Generally, the residuals of a well-fit model should be randomly distributed beca ## Example -* [Run in colab](https://wandb.me/scikit-colab): A simple notebook to get you started. \ No newline at end of file +* [Run in colab](https://wandb.me/scikit-colab): A simple notebook to get you started. diff --git a/models/integrations/spacy.mdx b/models/integrations/spacy.mdx index e9e351d770..f388ec8a2d 100644 --- a/models/integrations/spacy.mdx +++ b/models/integrations/spacy.mdx @@ -1,19 +1,19 @@ --- title: spaCy --- + +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + [spaCy](https://spacy.io) is a popular "industrial-strength" NLP library: fast, accurate models with a minimum of fuss. As of spaCy v3, W&B can now be used with [`spacy train`](https://spacy.io/api/cli#train) to track your spaCy model's training metrics as well as to save and version your models and datasets. And all it takes is a few added lines in your configuration. ## Sign up and create an API key An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ## Install the `wandb` library and log in @@ -116,4 +116,4 @@ python -m spacy train \ -When training begins, a link to your training run's [W&B page](/models/runs/) will be output which will take you to this run's experiment tracking [dashboard](/models/track/workspaces/) in the W&B web UI. \ No newline at end of file +When training begins, a link to your training run's [W&B page](/models/runs/) will be output which will take you to this run's experiment tracking [dashboard](/models/track/workspaces/) in the W&B web UI. diff --git a/models/integrations/yolox.mdx b/models/integrations/yolox.mdx index 41726b123d..4a56dfb718 100644 --- a/models/integrations/yolox.mdx +++ b/models/integrations/yolox.mdx @@ -3,19 +3,18 @@ description: How to integrate W&B with YOLOX. title: YOLOX --- +import ApiKeyCreateStreamlined from "/snippets/en/_includes/api-key-create-streamlined.mdx"; + [YOLOX](https://github.com/Megvii-BaseDetection/YOLOX) is an anchor-free version of YOLO with strong performance for object detection. You can use the YOLOX W&B integration to turn on logging of metrics related to training, validation, and the system, and you can interactively validate predictions with a single command-line argument. ## Sign up and create an API key An API key authenticates your machine to W&B. You can generate an API key from your user profile. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + 1. Click your user profile icon in the upper right corner. 1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. ## Install the `wandb` library and log in @@ -87,4 +86,4 @@ python tools/train.py .... --logger wandb \ YOLOX training dashboard -Any questions or issues about this W&B integration? Open an issue in the [YOLOX repository](https://github.com/Megvii-BaseDetection/YOLOX). \ No newline at end of file +Any questions or issues about this W&B integration? Open an issue in the [YOLOX repository](https://github.com/Megvii-BaseDetection/YOLOX). diff --git a/models/models_quickstart.mdx b/models/models_quickstart.mdx index a01ebf68ad..5cdbf18edc 100644 --- a/models/models_quickstart.mdx +++ b/models/models_quickstart.mdx @@ -11,7 +11,7 @@ This tutorial uses the following: * [W&B Reports and Workspaces API](/models/ref/wandb_workspaces) (`wandb.wandb-workspaces`): to create a report to summarize findings. ## Sign up and create an API key -To authenticate your machine with W&B, you must first generate an API key at [wandb.ai/authorize](https://wandb.ai/authorize). Copy the API key and store it securely. +To authenticate your machine with W&B, you must first generate an API key at [wandb.ai/settings](https://wandb.ai/settings). Copy the API key and store it securely. ## Install and import packages diff --git a/models/quickstart.mdx b/models/quickstart.mdx index 6eace1c189..720caf5fdd 100644 --- a/models/quickstart.mdx +++ b/models/quickstart.mdx @@ -2,6 +2,9 @@ description: W&B Quickstart title: W&B Quickstart --- + +import ApiKeyCreate from "/snippets/en/_includes/api-key-create.mdx"; + Install W&B to track, visualize, and manage machine learning experiments of any size. @@ -10,7 +13,9 @@ Are you looking for information on W&B Weave? See the [Weave Python SDK quicksta ## Sign up and create an API key -To authenticate your machine with W&B, generate an API key from your user profile or at [wandb.ai/authorize](https://wandb.ai/authorize). Copy the API key and store it securely. +To authenticate your machine with W&B, you need an API key. + + ## Install the `wandb` library and log in diff --git a/models/ref/python.mdx b/models/ref/python.mdx index 25e5c959f1..33710973ad 100644 --- a/models/ref/python.mdx +++ b/models/ref/python.mdx @@ -10,7 +10,7 @@ The W&B Python SDK, accessible at `wandb`, enables you to train and fine-tune mo ### Sign up and create an API key -To authenticate your machine with W&B, you must first generate an API key at https://wandb.ai/authorize. +To authenticate your machine with W&B, you must first generate an API key at [User Settings](https://wandb.ai/settings). ### Install and import packages diff --git a/models/ref/wandb_workspaces.mdx b/models/ref/wandb_workspaces.mdx index f8a8c8635d..45020e30a4 100644 --- a/models/ref/wandb_workspaces.mdx +++ b/models/ref/wandb_workspaces.mdx @@ -16,7 +16,7 @@ W&B Report and Workspace API is in Public Preview. ### Sign up and create an API key -To authenticate your machine with W&B, you must first generate an API key at https://wandb.ai/authorize. +To authenticate your machine with W&B, you must first generate an API key at [User Settings](https://wandb.ai/settings). ### Install and import packages diff --git a/models/support.mdx b/models/support.mdx index 0d48647a9c..db70910747 100644 --- a/models/support.mdx +++ b/models/support.mdx @@ -3,6 +3,9 @@ title: Support --- import {Banner} from "/snippets/Banner.jsx"; +import ApiKeyFind from "/snippets/en/_includes/api-key-find.mdx"; +import OrgServiceAccountCreate from "/snippets/en/_includes/org-service-account-create.mdx"; +import TeamServiceAccountCreate from "/snippets/en/_includes/team-service-account-create.mdx"; Search for help from support articles, product documentation,
@@ -770,14 +773,7 @@ Use the search bar to filter the reports list. Select an unwanted report to dele -To find your API key for Weights and Biases (W&B): - -- Navigate to the [W&B authorization page](https://wandb.ai/authorize). Log in if necessary. -- Alternatively, access your profile: - 1. Click your user profile in the upper right corner. - 2. Select "User Settings." - 3. Scroll to the "Danger Zone" section. - 4. Click "Reveal" next to "API Keys." + @@ -1043,9 +1039,8 @@ A 401 Invalid Authentication error means your API key is invalid or your W&B pro ## Verify your API key -1. Get a new API key at [https://wandb.ai/authorize](https://wandb.ai/authorize) -2. Check for extra spaces or missing characters when copying -3. Store your API key securely +1. Create a new API key at [User Settings](https://wandb.ai/settings). +2. Store your API key securely. ## Check your project configuration @@ -1700,7 +1695,7 @@ Personal Entities are unavailable for accounts created after May 21, 2024. W&B e When using a shared machine, ensure that runs log to the correct WandB account by setting the `WANDB_API_KEY` environment variable for authentication. If sourced in the environment, this variable provides the correct credentials upon login. Alternatively, set the environment variable directly in the script. -Execute the command `export WANDB_API_KEY=X`, replacing X with your API key. Logged-in users can find their API key at [wandb.ai/authorize](https://app.wandb.ai/authorize). +Execute the command `export WANDB_API_KEY=X`, replacing X with your API key. Create an API key at [wandb.ai/settings](https://wandb.ai/settings). @@ -2338,7 +2333,7 @@ By default, `wandb.init` starts a process that syncs metrics in real time to the Set the following environment variables: -1. `WANDB_API_KEY=$KEY`, where `$KEY` is the API Key from your [settings page](https://app.wandb.ai/settings). +1. `WANDB_API_KEY=$KEY`, where `$KEY` is an API key created at [User Settings](https://wandb.ai/settings). 2. `WANDB_MODE="offline"`. Here is an example of implementing this in a script: @@ -2458,14 +2453,7 @@ Among other things, service accounts are useful for tracking automated jobs logg For comprehensive information about service accounts, including best practices and detailed setup instructions, refer to [Use service accounts to automate workflows](/platform/hosting/iam/service-accounts). For information about how service accounts behave in team contexts, refer to [Team Service Account Behavior](/platform/app/settings-page/teams#team-service-account-behavior). -You can get the API key for a service account in your team at `//service-accounts`. Alternatively you can go to the **Team settings** for your team and then refer to the **Service Accounts** tab. - -To create a new service account for your team: -* Press the **+ New service account** button in the **Service Accounts** tab of your team -* Provide a name in the **Name** field -* Select **Generate API key (Built-in)** as the authentication method -* Press the **Create** button -* Click the **Copy API key** button for the newly created service account and store it in a secret manager or another safe but accessible location + Apart from the **Built-in** service accounts, W&B also supports **External service accounts** using [identity federation for SDK and CLI](/platform/hosting/iam/identity_federation#external-service-accounts). Use external service accounts if you are looking to automate W&B tasks using service identities managed in your identity provider that can issue JSON Web Tokens (JWT). diff --git a/models/support/find_api_key.mdx b/models/support/find_api_key.mdx index 319ec19ea7..fa4666f419 100644 --- a/models/support/find_api_key.mdx +++ b/models/support/find_api_key.mdx @@ -1,12 +1,46 @@ --- -title: How do I find my API key? +title: How do I create and manage API keys? --- -To find your API key for Weights and Biases (W&B): +import ApiKeyFind from "/snippets/en/_includes/api-key-find.mdx"; +import ApiKeyCreate from "/snippets/en/_includes/api-key-create.mdx"; +import ApiKeySecurity from "/snippets/en/_includes/api-key-security.mdx"; +import ServiceAccountApiKeyDelete from "/snippets/en/_includes/service-account-api-key-delete.mdx"; -- Navigate to the [W&B authorization page](https://wandb.ai/authorize). Log in if necessary. -- Alternatively, access your profile: - 1. Click your user profile in the upper right corner. - 2. Select "User Settings." - 3. Scroll to the "Danger Zone" section. - 4. Click "Reveal" next to "API Keys." +## Create a new API key + + + +## Find your API keys + + + +## Delete an API key + + +Deleting an API key immediately revokes access for any scripts or services using that key. Ensure you have updated all systems to use a new key before deleting the old one. + + +To revoke access, delete the API key. Select the **Personal API key** or **Service Account API key** tab for details. + + + +1. Navigate to [wandb.ai/settings](https://wandb.ai/settings). +1. In the the **API Keys** section, click the delete button next to the key you want to delete. + + + +Learn more about [using service accounts to automate workflows](/platform/hosting/iam/service-accounts). + + + +## Replace an API key + +To replace (rotate) an API key: + +1. [Create a new API key](#create-a-new-api-key). +2. Update all scripts, services, and environments to use the new API key. +3. Test that the new API key works in all locations. +4. Delete the old API key. + + diff --git a/models/support/inference_authentication_401_error.mdx b/models/support/inference_authentication_401_error.mdx index 0fd0038a63..4d0823fb9d 100644 --- a/models/support/inference_authentication_401_error.mdx +++ b/models/support/inference_authentication_401_error.mdx @@ -6,9 +6,8 @@ A 401 Invalid Authentication error means your API key is invalid or your W&B pro ## Verify your API key -1. Get a new API key at [https://wandb.ai/authorize](https://wandb.ai/authorize) -2. Check for extra spaces or missing characters when copying -3. Store your API key securely +1. Create a new API key at [User Settings](https://wandb.ai/settings). +2. Store your API key securely. ## Check your project configuration diff --git a/models/support/log_shared_machine.mdx b/models/support/log_shared_machine.mdx index ac0c6fab1f..b124da0134 100644 --- a/models/support/log_shared_machine.mdx +++ b/models/support/log_shared_machine.mdx @@ -4,4 +4,4 @@ title: How do I log to the right wandb user on a shared machine? When using a shared machine, ensure that runs log to the correct WandB account by setting the `WANDB_API_KEY` environment variable for authentication. If sourced in the environment, this variable provides the correct credentials upon login. Alternatively, set the environment variable directly in the script. -Execute the command `export WANDB_API_KEY=X`, replacing X with your API key. Logged-in users can find their API key at [wandb.ai/authorize](https://app.wandb.ai/authorize). +Execute the command `export WANDB_API_KEY=X`, replacing X with your API key. Create an API key at [wandb.ai/settings](https://wandb.ai/settings). diff --git a/models/support/rotate_revoke_access.mdx b/models/support/rotate_revoke_access.mdx deleted file mode 100644 index 01bfad9625..0000000000 --- a/models/support/rotate_revoke_access.mdx +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: How can I rotate or revoke access? ---- - -Personal and service account keys can be rotated or revoked. Create a new API key or service account user, then reconfigure scripts to use the new key. After reconfiguration, remove the old API key from your profile or team. diff --git a/models/support/save_metrics_offline_sync_them_wb_later.mdx b/models/support/save_metrics_offline_sync_them_wb_later.mdx index 089deb774a..260739cbee 100644 --- a/models/support/save_metrics_offline_sync_them_wb_later.mdx +++ b/models/support/save_metrics_offline_sync_them_wb_later.mdx @@ -6,7 +6,7 @@ By default, `wandb.init` starts a process that syncs metrics in real time to the Set the following environment variables: -1. `WANDB_API_KEY=$KEY`, where `$KEY` is the API Key from your [settings page](https://app.wandb.ai/settings). +1. `WANDB_API_KEY=$KEY`, where `$KEY` is an API key created at [User Settings](https://wandb.ai/settings). 2. `WANDB_MODE="offline"`. Here is an example of implementing this in a script: diff --git a/models/support/service_account_useful.mdx b/models/support/service_account_useful.mdx index 70840b6db2..8654bcf75c 100644 --- a/models/support/service_account_useful.mdx +++ b/models/support/service_account_useful.mdx @@ -3,6 +3,7 @@ title: What is a service account, and why is it useful? --- import Text from "/snippets/en/_includes/service-account-benefits.mdx"; +import TeamServiceAccountCreate from "/snippets/en/_includes/team-service-account-create.mdx"; A **service account** represents a non-human or machine identity, which can automate common tasks across teams and projects. Service accounts are ideal for CI/CD pipelines, automated training jobs, and other machine-to-machine workflows. @@ -12,14 +13,7 @@ Among other things, service accounts are useful for tracking automated jobs logg For comprehensive information about service accounts, including best practices and detailed setup instructions, refer to [Use service accounts to automate workflows](/platform/hosting/iam/service-accounts/). For information about how service accounts behave in team contexts, refer to [Team Service Account Behavior](/platform/app/settings-page/teams/#team-service-account-behavior). -You can get the API key for a service account in your team at `//service-accounts`. Alternatively you can go to the **Team settings** for your team and then refer to the **Service Accounts** tab. - -To create a new service account for your team: -* Press the **+ New service account** button in the **Service Accounts** tab of your team -* Provide a name in the **Name** field -* Select **Generate API key (Built-in)** as the authentication method -* Press the **Create** button -* Click the **Copy API key** button for the newly created service account and store it in a secret manager or another safe but accessible location + Apart from the **Built-in** service accounts, W&B also supports **External service accounts** using [identity federation for SDK and CLI](/platform/hosting/iam/identity_federation/#external-service-accounts). Use external service accounts if you are looking to automate W&B tasks using service identities managed in your identity provider that can issue JSON Web Tokens (JWT). diff --git a/models/track/environment-variables.mdx b/models/track/environment-variables.mdx index f9fda4c959..7d126f36dc 100644 --- a/models/track/environment-variables.mdx +++ b/models/track/environment-variables.mdx @@ -33,7 +33,7 @@ Use these optional environment variables to do things like set up authentication | Variable name | Usage | | --------------------------- | ---------- | -| `WANDB_API_KEY` | Sets the authentication key associated with your account. You can find your key on [your settings page](https://app.wandb.ai/settings). This must be set if `wandb login` hasn't been run on the remote machine. | +| `WANDB_API_KEY` | Sets the authentication key associated with your account. Create an API key at [User Settings](https://wandb.ai/settings). This must be set if `wandb login` hasn't been run on the remote machine. | | `WANDB_BASE_URL` | If you're using [wandb/local](/platform/hosting/) you should set this environment variable to `http://YOUR_IP:YOUR_PORT` | | `WANDB_CACHE_DIR` | This defaults to \~/.cache/wandb, you can override this location with this environment variable | | `WANDB_CONFIG_DIR` | This defaults to \~/.config/wandb, you can override this location with this environment variable | @@ -73,4 +73,4 @@ If you're running containers in [Singularity](https://singularity.lbl.gov/index. ## Running on AWS -If you're running batch jobs in AWS, it's easy to authenticate your machines with your W&B credentials. Get your API key from your [settings page](https://app.wandb.ai/settings), and set the `WANDB_API_KEY` environment variable in the [AWS batch job spec](https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html#parameters). +If you're running batch jobs in AWS, it's easy to authenticate your machines with your W&B credentials. Create an API key at [User Settings](https://wandb.ai/settings), and set the `WANDB_API_KEY` environment variable in the [AWS batch job spec](https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html#parameters). diff --git a/models/track/jupyter.mdx b/models/track/jupyter.mdx index ff97bf69ce..33ac4da996 100644 --- a/models/track/jupyter.mdx +++ b/models/track/jupyter.mdx @@ -87,7 +87,7 @@ Want to know more about what you can do with W&B? Check out our [guide to loggin 1. **Easy authentication in Colab**: When you call `wandb.init` for the first time in a Colab, we automatically authenticate your runtime if you're currently logged in to W&B in your browser. On the overview tab of your run page, you'll see a link to the Colab. 2. **Jupyter Magic:** Display dashboards, sweeps and reports directly in your notebooks. The `%wandb` magic accepts a path to your project, sweeps or reports and will render the W&B interface directly in the notebook. 3. **Launch dockerized Jupyter**: Call `wandb docker --jupyter` to launch a docker container, mount your code in it, ensure Jupyter is installed, and launch on port 8888. -4. **Run cells in arbitrary order without fear**: By default, we wait until the next time `wandb.init` is called to mark a run as `finished`. That allows you to run multiple cells (say, one to set up data, one to train, one to test) in whatever order you like and have them all log to the same run. If you turn on code saving in [settings](https://app.wandb.ai/settings), you'll also log the cells that were executed, in order and in the state in which they were run, enabling you to reproduce even the most non-linear of pipelines. To mark a run as complete manually in a Jupyter notebook, call `run.finish`. +4. **Run cells in arbitrary order without fear**: By default, we wait until the next time `wandb.init` is called to mark a run as `finished`. That allows you to run multiple cells (say, one to set up data, one to train, one to test) in whatever order you like and have them all log to the same run. If you turn on code saving in [User Settings](https://wandb.ai/settings), you'll also log the cells that were executed, in order and in the state in which they were run, enabling you to reproduce even the most non-linear of pipelines. To mark a run as complete manually in a Jupyter notebook, call `run.finish`. ```python import wandb @@ -97,4 +97,4 @@ run = wandb.init() # training script and logging goes here run.finish() -``` \ No newline at end of file +``` diff --git a/models/track/public-api-guide.mdx b/models/track/public-api-guide.mdx index 72d1f9e118..5ad907fd56 100644 --- a/models/track/public-api-guide.mdx +++ b/models/track/public-api-guide.mdx @@ -4,6 +4,9 @@ description: Import data from MLFlow, export or update data that you have saved title: Import and export data --- +import ApiKeyCreate from "/snippets/en/_includes/api-key-create.mdx"; +import ApiKeySecurity from "/snippets/en/_includes/api-key-security.mdx"; + Export data or import data with W&B Public APIs. @@ -158,15 +161,11 @@ See the [Generated Reference Docs](/models/ref/python/public-api/) for details o ### Create an API key -An API key authenticates your machine to W&B. You can generate an API key from your user profile. +An API key authenticates your machine to W&B. - -For a more streamlined approach, you can generate an API key by going directly to the [W&B authorization page](https://wandb.ai/authorize). Copy the displayed API key and save it in a secure location such as a password manager. - + -1. Click your user profile icon in the upper right corner. -1. Select **User Settings**, then scroll to the **API Keys** section. -1. Click **Reveal**. Copy the displayed API key. To hide the API key, reload the page. + ### Find the run path @@ -669,4 +668,4 @@ run = api.run("//") meta = json.load(run.file("wandb-metadata.json").download()) program = ["python"] + [meta["program"]] + meta["args"] -``` \ No newline at end of file +``` diff --git a/models/tutorials/weave_models_registry.mdx b/models/tutorials/weave_models_registry.mdx index e64935577b..7c384e6eea 100644 --- a/models/tutorials/weave_models_registry.mdx +++ b/models/tutorials/weave_models_registry.mdx @@ -29,7 +29,7 @@ The workflow covers the following steps: The `RagModel` referenced below is top-level `weave.Model` that you can consider a complete RAG app. It contains a `ChatModel`, Vector database, and a Prompt. The `ChatModel` is also another `weave.Model` which contains the code to download an artifact from the W&B Registry and it can change to support any other chat model as part of the `RagModel`. For more details see [the complete model on Weave](https://wandb.ai/wandb-smle/weave-cookboook-demo/weave/evaluations?peekPath=%2Fwandb-smle%2Fweave-cookboook-demo%2Fobjects%2FRagModel%2Fversions%2Fx7MzcgHDrGXYHHDQ9BA8N89qDwcGkdSdpxH30ubm8ZM%3F%26). ## 1. Setup -First, install `weave` and `wandb`, then log in with an API key. You can create and view your API keys at https://wandb.ai/settings. +First, install `weave` and `wandb`, then log in with an API key. You can create and view your API keys at [User Settings](https://wandb.ai/settings). ```bash pip install weave wandb diff --git a/platform/app/settings-page.mdx b/platform/app/settings-page.mdx index f7feb19f79..c5a85851ea 100644 --- a/platform/app/settings-page.mdx +++ b/platform/app/settings-page.mdx @@ -5,6 +5,19 @@ title: Settings sidebarTitle: Overview --- -Within your individual user account you can edit: your profile picture, display name, geography location, biography information, emails associated to your account, and manage alerts for runs. You can also use the settings page to link your GitHub repository and delete your account. For more information, see [User settings](/platform/app/settings-page/user-settings/). +Within your individual user account you can: +- [Edit your profile](/platform/app/settings-page/user-settings#profile), including your profile picture, display name, geographic location, biography information, and email addresses associated with your account. +- [Configure API keys](/platform/app/settings-page/user-settings#api-keys). +- [Configure alerts](/platform/app/settings-page/user-settings#alerts) for runs. +- [Link your GitHub repository](/platform/app/settings-page/user-settings#personal-github-integration). +- [Delete your account](/platform/app/settings-page/user-settings#delete-your-account). -Use the team settings page to invite or remove new members to a team, manage alerts for team runs, change privacy settings, and view and manage storage usage. For more information about team settings, see [Team settings](/platform/app/settings-page/teams/). +For more information, see [User settings](/platform/app/settings-page/user-settings/). + +Use the team settings page to: +- [Invite or remove members](/platform/app/settings-page/teams#members) from a team. +- [Manage alerts](/platform/app/settings-page/teams#alerts) for team runs. +- [Change privacy settings](/platform/app/settings-page/teams#privacy). +- [View and manage team storage](/platform/app/settings-page/teams#usage) usage. + +For more information about team settings, see [Team settings](/platform/app/settings-page/teams/). diff --git a/platform/app/settings-page/user-settings.mdx b/platform/app/settings-page/user-settings.mdx index 736a8e5de0..a632e3adf3 100644 --- a/platform/app/settings-page/user-settings.mdx +++ b/platform/app/settings-page/user-settings.mdx @@ -5,6 +5,9 @@ description: Manage your profile information, account defaults, alerts, particip title: Manage user settings --- +import ApiKeyCreate from "/snippets/en/_includes/api-key-create.mdx"; +import ApiKeySecurity from "/snippets/en/_includes/api-key-security.mdx"; + Navigate to your user profile page and select your user icon on the top right corner. From the dropdown, choose **Settings**. ## Profile @@ -59,6 +62,42 @@ The **Teams** section lists all of your teams. To create or manage a team, see [Manage teams](/platform/app/settings-page/teams/). +## API keys + +The **API Keys** section allows you to manage your personal API keys for authenticating with W&B services. + +### View your API keys + +The API keys table displays: +- **Key ID**: The first part of each API key, used for identification +- **Name**: A descriptive name you provided when creating the key +- **Created**: When the key was created +- **Last used**: The most recent usage timestamp + + +The table shows only the key ID (first part of the key) for security. The full secret API key is only displayed once when you create it. + + +Enter a partial key name or ID to search filter the list of API keys. + +### Create a new API key + + + +### Delete an API key + +To revoke access by deleting an API key: + +1. Find the key you want to delete in the API keys table. +2. Click the delete button next to the key. +3. Confirm the deletion. + + +Deleting an API key immediately revokes access for any scripts or services using that key. Ensure you have updated all systems to use a new key before deleting the old one. + + + + ## Beta features Within the **Beta Features** section you can optionally enable fun add-ons and sneak previews of new products in development. Select the toggle switch next to the beta feature you want to enable. @@ -90,4 +129,4 @@ Account deletion can not be reversed. ## Storage -The **Storage** section describes the total memory usage the your account has consumed on the Weights and Biases servers. The default storage plan is 100GB. For more information about storage and pricing, see the [Pricing](https://wandb.ai/site/pricing) page. \ No newline at end of file +The **Storage** section describes the total memory usage the your account has consumed on the Weights and Biases servers. The default storage plan is 100GB. For more information about storage and pricing, see the [Pricing](https://wandb.ai/site/pricing) page. diff --git a/platform/hosting/iam/service-accounts.mdx b/platform/hosting/iam/service-accounts.mdx index 0636d2260a..5db85a6835 100644 --- a/platform/hosting/iam/service-accounts.mdx +++ b/platform/hosting/iam/service-accounts.mdx @@ -5,6 +5,11 @@ title: Use service accounts to automate workflows --- import ServiceAccountBenefits from "/snippets/en/_includes/service-account-benefits.mdx"; +import ApiKeyViewOnceWarning from "/snippets/en/_includes/api-key-view-once-warning.mdx"; +import OrgServiceAccountCreate from "/snippets/en/_includes/org-service-account-create.mdx"; +import TeamServiceAccountCreate from "/snippets/en/_includes/team-service-account-create.mdx"; +import ServiceAccountApiKeyCreateAdditional from "/snippets/en/_includes/service-account-api-key-create-additional.mdx"; +import ServiceAccountApiKeyDelete from "/snippets/en/_includes/service-account-api-key-delete.mdx"; A service account represents a non-human or machine user that can automatically perform common tasks across projects within a team or across teams. Service accounts are ideal for CI/CD pipelines, automated training jobs, and other machine-to-machine workflows. @@ -37,16 +42,11 @@ Service accounts are available on [Dedicated Cloud](/platform/hosting/hosting-op Service accounts scoped to an organization have permissions to read and write in all projects in the organization, regardless of the team, with the exception of [restricted projects](/platform/hosting/iam/access-management/restricted-projects/#visibility-scopes). Before an organization-scoped service account can access a restricted project, an admin of that project must explicitly add the service account to the project. -An organization admin can obtain the API key for an organization-scoped service account from the **Service Accounts** tab of the organization or account dashboard. +### Create an organization-scoped service account -To create a new organization-scoped service account: + -* Click **New service account** button in the **Service Accounts** tab of your organization dashboard. -* Enter a **Name**. -* Select a default team for the service account. -* Click **Create**. -* Next to the newly created service account, click **Copy API key**. -* Store the copied API key in a secret manager or another secure but accessible location. + An organization-scoped service account requires a default team, even though it has access to non-restricted projects owned by all teams within the organization. This helps to prevent a workload from failing if the `WANDB_ENTITY` variable is not set in the environment for your model training or generative AI app. To use an organization-scoped service account for a project in a different team, you must set the `WANDB_ENTITY` environment variable to that team. @@ -56,16 +56,21 @@ An organization-scoped service account requires a default team, even though it h A team-scoped service account can read and write in all projects within its team, except to [restricted projects](/platform/hosting/iam/access-management/restricted-projects/#visibility-scopes) in that team. Before a team-scoped service account can access a restricted project, an admin of that project must explicitly add the service account to the project. -As a team admin, you can get the API key for a team-scoped service account in your team at `//service-accounts`. Alternatively you can go to the **Team settings** for your team and then refer to the **Service Accounts** tab. +### Create a team-scoped service account -To create a new team scoped service account for your team: + -* Click **New service account** button in the **Service Accounts** tab of your team. -* Enter a **Name**. -* Select **Generate API key (Built-in)** as the authentication method. -* Click **Create**. -* Next to the newly created service account, click **Copy API key**. -* Store the copied API key in a secret manager or another secure but accessible location. + + +### Create additional API keys for a service account + + + + + +### Delete a service account API key + + If you do not configure a team in your model training or generative AI app environment that uses a team-scoped service account, the model runs or weave traces log to the named project within the service account's parent team. In such a scenario, user attribution using the `WANDB_USERNAME` or `WANDB_USER_EMAIL` variables _do not work_ unless the referenced user is part of the service account's parent team. @@ -124,4 +129,4 @@ Common issues and solutions: - **"Unauthorized" errors**: Verify the API key is correctly set and the service account has access to the target project - **Runs not appearing**: Check that `WANDB_ENTITY` is set to the correct team name - **User attribution not working**: Ensure the user specified in `WANDB_USERNAME` is a member of the team -- **Access denied to restricted projects**: Explicitly add the service account to the restricted project's access list \ No newline at end of file +- **Access denied to restricted projects**: Explicitly add the service account to the restricted project's access list diff --git a/scripts/gpt-editor.py b/scripts/gpt-editor.py index 2ab2c76f4b..857f6d46ee 100644 --- a/scripts/gpt-editor.py +++ b/scripts/gpt-editor.py @@ -127,7 +127,7 @@ def generate_prompt(content, vale_output): - Use the Oxford comma when appropriate. - Commas and periods must go inside quotation marks. - Headings must use sentence-style capitalization. -- Do NOT change URLs in the text (for example wandb.ai/authorize) +- Do NOT change URLs in the text (for example wandb.ai/settings) - Remove instances of indirect, soft terms like "may," "might," and "should." Technical documentation is prescriptive and documents exactly what happens and when. - We want to hit a Flesch-Kincaid readability level of 7th grade and Flesch-Kincaid ease-of-reading score above 70. - If Vale reports violations of a Microsoft rule and a Google rule and the error messages seem to conflict, favor the Google style guide. diff --git a/snippets/en/_includes/api-key-create-streamlined.mdx b/snippets/en/_includes/api-key-create-streamlined.mdx new file mode 100644 index 0000000000..aab568dbd4 --- /dev/null +++ b/snippets/en/_includes/api-key-create-streamlined.mdx @@ -0,0 +1,3 @@ + +For a more streamlined approach, create an API key by going directly to [User Settings](https://wandb.ai/settings). Copy the newly created API key immediately and save it in a secure location such as a password manager. + diff --git a/snippets/en/_includes/api-key-create.mdx b/snippets/en/_includes/api-key-create.mdx new file mode 100644 index 0000000000..fb14de92e7 --- /dev/null +++ b/snippets/en/_includes/api-key-create.mdx @@ -0,0 +1,23 @@ +import ApiKeyViewOnceWarning from "/snippets/en/_includes/api-key-view-once-warning.mdx"; +import ServiceAccountApiKeyCreate from "/snippets/en/_includes/service-account-api-key-create-additional.mdx"; + +To create an API key, select the **Personal API key** or **Service Account API key** tab for details. + + + +To create a personal API key owned by your user ID: + +1. Navigate to [User Settings](https://wandb.ai/settings) and log in if necessary. +2. Click **Create new API key**. +3. Provide a descriptive name for your API key. +4. Click **Create**. +5. Copy the displayed API key immediately and store it securely. + + + + + + + + +For secure storage options, see [Store API keys securely](#store-and-handle-api-keys-securely). diff --git a/snippets/en/_includes/api-key-find.mdx b/snippets/en/_includes/api-key-find.mdx new file mode 100644 index 0000000000..9b9dcf1c2c --- /dev/null +++ b/snippets/en/_includes/api-key-find.mdx @@ -0,0 +1,23 @@ +To find an API key, select the **Personal API key** or **Service Account API key** tab for details. + + + +To find a personal API key owned by your user ID: + +1. Navigate to [User Settings](https://wandb.ai/settings) and log in if necessary. +2. Alternatively, access your user settings: + - Click your user profile icon in the upper-right corner. + - Select **User Settings**. + - Scroll to the **API Keys** section. + + +To find an API key owned by an organization or team service account: + +1. Navigate to the **API Keys** tab in your organization settings. +2. Find the API key in the list. You can search or filter the list by owner, key name, or key ID. + + + + +The API keys table shows the key ID (the first part of each API key) for identification purposes. The full secret API key is only displayed once when you create it. If you need to use an existing key but do not have the full secret stored, you must create a new API key. + diff --git a/snippets/en/_includes/api-key-security.mdx b/snippets/en/_includes/api-key-security.mdx new file mode 100644 index 0000000000..131e0f94e7 --- /dev/null +++ b/snippets/en/_includes/api-key-security.mdx @@ -0,0 +1,54 @@ +## Store and handle API keys securely + +API keys provide access to your W&B account and should be protected like passwords. Follow these best practices: + +### Recommended storage methods + +- **Secrets manager**: Use a dedicated secrets management system such as [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/), [HashiCorp Vault](https://www.vaultproject.io/), [Azure Key Vault](https://azure.microsoft.com/en-us/products/key-vault), or [Google Secret Manager](https://cloud.google.com/security/products/secret-manager). +- **Password manager**: Use a reputable password manager application. +- **OS-level keychains**: Store keys in macOS Keychain, Windows Credential Manager, or Linux secret service. Not suggested for production. + +### What to avoid + +- Never commit API keys to version control systems such as Git. +- Do not store API keys in plain text configuration files. +- Do not pass API keys on the command line, because they will be visible in the output of OS commands like `ps`. +- Avoid sharing API keys through email, chat, or other unencrypted channels. +- Do not hard-code API keys in your source code. + +If an API key is exposed, delete the API key from your W&B account immediately and contact [support](mailto:support@wandb.ai) or your AISE. + +### Environment variables + +When using API keys in your code, pass them through environment variables: + +```bash +export WANDB_API_KEY="your-api-key-here" +``` + +This approach keeps keys out of your source code and makes it easier to rotate them when needed. + + +Avoid setting the environment variable in line with the command, because it will be visible in the output of OS commands like `ps`: + +```bash +# Avoid this pattern, which can expose the API key in process managers +export WANDB_API_KEY="your-api-key-here" ./my-script.sh +``` + + +### SDK version compatibility + +New API keys are longer than legacy keys. When authenticating with older versions of the `wandb` or `weave` SDKs, you may encounter an API key length error. + +**Solution**: Update to a newer SDK version: +- `wandb` SDK v0.22.3+ + + ```bash + pip install --upgrade wandb==0.22.3 + ``` +- `weave` SDK v0.52.17+ + ```bash + pip install --upgrade weave==0.52.17 + ``` +If you cannot upgrade the SDK immediately, set the API key using the `WANDB_API_KEY` environment variable as a workaround. diff --git a/snippets/en/_includes/api-key-view-once-warning.mdx b/snippets/en/_includes/api-key-view-once-warning.mdx new file mode 100644 index 0000000000..df753a08df --- /dev/null +++ b/snippets/en/_includes/api-key-view-once-warning.mdx @@ -0,0 +1,3 @@ + +The full API key is only shown once at creation time. After you close the dialog, you cannot view the full API key again. Only the key ID (first part of the key) is visible in your settings. If you lose the full API key, you must create a new API key. + diff --git a/snippets/en/_includes/org-service-account-create.mdx b/snippets/en/_includes/org-service-account-create.mdx new file mode 100644 index 0000000000..c2f1e684aa --- /dev/null +++ b/snippets/en/_includes/org-service-account-create.mdx @@ -0,0 +1,11 @@ +To create a new organization-scoped service account and API key: + +1. Go to [Organization settings](https://wandb.ai/account-settings/), then click **Service Accounts**. +2. Click **Create service account**. +3. Provide a name and select a default team. +4. Click **Create**. +5. Find the service account you just created. +6. Click the action menu (`...`), then click **Create API key**. +7. Provide a name for the API key, then click **Create**. +8. Copy the API key and store it securely. +9. Click **Done**. diff --git a/snippets/en/_includes/service-account-api-key-create-additional.mdx b/snippets/en/_includes/service-account-api-key-create-additional.mdx new file mode 100644 index 0000000000..e6b1115fab --- /dev/null +++ b/snippets/en/_includes/service-account-api-key-create-additional.mdx @@ -0,0 +1,10 @@ +To create an API key owned by a service account: + +1. Navigate to the **Service Accounts** tab in your team or organization settings. +2. Find the service account in the list. +3. Click the action menu (`...`), then click **Create API key**. +4. Provide a name for the API key, then click **Create**. +5. Copy the displayed API key immediately and store it securely. +6. Click **Done**. + +You can create multiple API keys for a single service account to support different environments or workflows. diff --git a/snippets/en/_includes/service-account-api-key-delete.mdx b/snippets/en/_includes/service-account-api-key-delete.mdx new file mode 100644 index 0000000000..d82ff33cc1 --- /dev/null +++ b/snippets/en/_includes/service-account-api-key-delete.mdx @@ -0,0 +1,5 @@ +To delete an API key owned by an organization or team service account: + +1. Go to [Organization settings](https://wandb.ai/account-settings/), then click **API Keys**. +2. Find the API key. The list includes all API keys owned by organization and team service accounts. You can search or filter by key name or ID, and you can sort by any column. +3. Click the delete button. diff --git a/snippets/en/_includes/team-service-account-create.mdx b/snippets/en/_includes/team-service-account-create.mdx new file mode 100644 index 0000000000..bc73c7af56 --- /dev/null +++ b/snippets/en/_includes/team-service-account-create.mdx @@ -0,0 +1,12 @@ +To create a new team-scoped service account and API key: + +1. In your team's settings, click **Service Accounts**. +2. Click **New Team Service Account**. +3. Provide a name for the service account. +4. Set Authentication Method to **Generate API key** (default). If you select **Federated Identity**, the service account cannot own API keys. +5. Click **Create**. +6. Find the service account you just created. +7. Click the action menu (`...`), then click **Create API key**. +8. Provide a name for the API key, then click **Create**. +9. Copy the API key and store it securely. +10. Click **Done**. diff --git a/snippets/en/kb_article_map.mdx b/snippets/en/kb_article_map.mdx index 53d049c682..2816b3a647 100644 --- a/snippets/en/kb_article_map.mdx +++ b/snippets/en/kb_article_map.mdx @@ -1036,7 +1036,7 @@ export const kbArticleMap = [ "title": "How do I set a retention or expiration policy on my artifact?" }, { - "page": "/models/support/rotate_revoke_access", + "page": "/models/support/find_api_key", "tags": [ "administrator", "security" @@ -1337,4 +1337,4 @@ export const kbArticleMap = [ ], "title": "Does this only work for Python?" } -] \ No newline at end of file +] diff --git a/snippets/ja/kb_article_map.mdx b/snippets/ja/kb_article_map.mdx index 3802cc378f..8f0a70cf9c 100644 --- a/snippets/ja/kb_article_map.mdx +++ b/snippets/ja/kb_article_map.mdx @@ -986,7 +986,7 @@ export const kbArticleMap = [ "title": "アーティファクトに保持ポリシーや有効期限を設定するにはどうすれば良いですか?" }, { - "page": "/ja/models/support/rotate_revoke_access", + "page": "/ja/models/support/find_api_key", "tags": [ "administrator", "security" @@ -1287,4 +1287,4 @@ export const kbArticleMap = [ ], "title": "Python でのみ動作しますか?" } -] \ No newline at end of file +] diff --git a/snippets/ko/kb_article_map.mdx b/snippets/ko/kb_article_map.mdx index e6ce2ef189..afc3e92b45 100644 --- a/snippets/ko/kb_article_map.mdx +++ b/snippets/ko/kb_article_map.mdx @@ -987,7 +987,7 @@ export const kbArticleMap = [ "title": "How do I set a retention or expiration policy on my artifact?" }, { - "page": "/ko/models/support/rotate_revoke_access", + "page": "/ko/models/support/find_api_key", "tags": [ "administrator", "security" @@ -1288,4 +1288,4 @@ export const kbArticleMap = [ ], "title": "Does this only work for Python?" } -] \ No newline at end of file +] diff --git a/support-tags.mdx b/support-tags.mdx index 1cdee7769e..2821620a02 100644 --- a/support-tags.mdx +++ b/support-tags.mdx @@ -1,6 +1,10 @@ --- Title: Support --- + +import ApiKeyFind from "/snippets/en/_includes/api-key-find.mdx"; +import OrgServiceAccountCreate from "/snippets/en/_includes/org-service-account-create.mdx"; +import TeamServiceAccountCreate from "/snippets/en/_includes/team-service-account-create.mdx"; @@ -742,14 +746,7 @@ Use the search bar to filter the reports list. Select an unwanted report to dele -To find your API key for Weights and Biases (W&B): - -- Navigate to the [W&B authorization page](https://wandb.ai/authorize). Log in if necessary. -- Alternatively, access your profile: - 1. Click your user profile in the upper right corner. - 2. Select "User Settings." - 3. Scroll to the "Danger Zone" section. - 4. Click "Reveal" next to "API Keys." + @@ -1015,9 +1012,8 @@ A 401 Invalid Authentication error means your API key is invalid or your W&B pro ## Verify your API key -1. Get a new API key at [https://wandb.ai/authorize](https://wandb.ai/authorize) -2. Check for extra spaces or missing characters when copying -3. Store your API key securely +1. Create a new API key at [User Settings](https://wandb.ai/settings). +2. Store your API key securely. ## Check your project configuration @@ -1673,7 +1669,7 @@ Personal Entities are unavailable for accounts created after May 21, 2024. W&B e When using a shared machine, ensure that runs log to the correct WandB account by setting the `WANDB_API_KEY` environment variable for authentication. If sourced in the environment, this variable provides the correct credentials upon login. Alternatively, set the environment variable directly in the script. -Execute the command `export WANDB_API_KEY=X`, replacing X with your API key. Logged-in users can find their API key at [wandb.ai/authorize](https://app.wandb.ai/authorize). +Execute the command `export WANDB_API_KEY=X`, replacing X with your API key. Create an API key at [wandb.ai/settings](https://wandb.ai/settings). @@ -2311,7 +2307,7 @@ By default, `wandb.init` starts a process that syncs metrics in real time to the Set the following environment variables: -1. `WANDB_API_KEY=$KEY`, where `$KEY` is the API Key from your [settings page](https://app.wandb.ai/settings). +1. `WANDB_API_KEY=$KEY`, where `$KEY` is an API key created at [User Settings](https://wandb.ai/settings). 2. `WANDB_MODE="offline"`. Here is an example of implementing this in a script: @@ -2431,14 +2427,9 @@ Among other things, service accounts are useful for tracking automated jobs logg For comprehensive information about service accounts, including best practices and detailed setup instructions, refer to [Use service accounts to automate workflows](/platform/hosting/iam/service-accounts). For information about how service accounts behave in team contexts, refer to [Team Service Account Behavior](/platform/app/settings-page/teams#team-service-account-behavior). -You can get the API key for a service account in your team at `//service-accounts`. Alternatively you can go to the **Team settings** for your team and then refer to the **Service Accounts** tab. + -To create a new service account for your team: -* Press the **+ New service account** button in the **Service Accounts** tab of your team -* Provide a name in the **Name** field -* Select **Generate API key (Built-in)** as the authentication method -* Press the **Create** button -* Click the **Copy API key** button for the newly created service account and store it in a secret manager or another safe but accessible location +The full API key is only shown once at creation time. After you close the dialog, you cannot view it again. Apart from the **Built-in** service accounts, W&B also supports **External service accounts** using [identity federation for SDK and CLI](/platform/hosting/iam/identity_federation#external-service-accounts). Use external service accounts if you are looking to automate W&B tasks using service identities managed in your identity provider that can issue JSON Web Tokens (JWT). diff --git a/training/api-reference.mdx b/training/api-reference.mdx index 046e63d671..8d69462fd5 100644 --- a/training/api-reference.mdx +++ b/training/api-reference.mdx @@ -9,7 +9,7 @@ The W&B Training API provides endpoints for managing and interacting with server ## Authentication -All API requests require authentication using your W&B API key. You can find your API key at [wandb.ai/authorize](https://wandb.ai/authorize). +All API requests require authentication using your W&B API key. Create an API key at [wandb.ai/settings](https://wandb.ai/settings). Include your API key in the `Authorization` header: diff --git a/training/prerequisites.mdx b/training/prerequisites.mdx index 1b866a3d9f..f365424705 100644 --- a/training/prerequisites.mdx +++ b/training/prerequisites.mdx @@ -3,6 +3,8 @@ title: Prerequisites description: Set up your environment to use W&B Training --- +import ApiKeyCreate from "/snippets/en/_includes/api-key-create.mdx"; + Complete these steps before using W&B Training features through the OpenPipe ART framework or API. @@ -11,7 +13,9 @@ Before starting, review the [usage information and limits](/training/serverless- ## Sign up and create an API key -To authenticate your machine with W&B, you must first generate an API key at [wandb.ai/authorize](https://wandb.ai/authorize). Copy the API key and store it securely. +To authenticate your machine with W&B, you must first generate an API key. + + ## Create a project in W&B diff --git a/training/serverless-rl/use-trained-models.mdx b/training/serverless-rl/use-trained-models.mdx index 1cc0644692..5482136dd6 100644 --- a/training/serverless-rl/use-trained-models.mdx +++ b/training/serverless-rl/use-trained-models.mdx @@ -6,7 +6,7 @@ description: Make inference requests to the models you've trained After training a model with Serverless RL, it is automatically available for inference. To send requests to your trained model, you need: -* Your [W&B API key](https://wandb.ai/authorize) +* Your [W&B API key](https://wandb.ai/settings) * The [Training API's](/training/api-reference) base URL, `https://api.training.wandb.ai/v1/` * Your model's endpoint diff --git a/weave.mdx b/weave.mdx index 82fd5c4d06..e461dbbc74 100644 --- a/weave.mdx +++ b/weave.mdx @@ -56,5 +56,4 @@ W&B Weave provides Python and TypeScript libraries. To install the Weave library -To start using the Weave library, create a [Weights & Biases (W&B) account](https://wandb.ai) and [obtain a copy your API key](https://wandb.ai/authorize). The API key allows you to authenticate to your W&B account and start sending data to it. - +To start using the Weave library, create a [Weights & Biases (W&B) account](https://wandb.ai) and an [API key at User Settings](https://wandb.ai/settings). The API key allows you to authenticate to your W&B account and start sending data to it. diff --git a/weave/cookbooks/Intro_to_Weave_Hello_Eval.mdx b/weave/cookbooks/Intro_to_Weave_Hello_Eval.mdx index 9b43c4f3d9..6402fe520e 100644 --- a/weave/cookbooks/Intro_to_Weave_Hello_Eval.mdx +++ b/weave/cookbooks/Intro_to_Weave_Hello_Eval.mdx @@ -13,7 +13,7 @@ This is an interactive notebook. You can run it locally or use the links below: Before you can run a Weave evaluation, complete the following prerequisites. -1. Install the W&B Weave SDK and log in with your [API key](https://wandb.ai/settings#api). +1. Install the W&B Weave SDK and log in with your [API key](https://wandb.ai/settings#apikeys). 2. Install the OpenAI SDK and log in with your [API key](https://platform.openai.com/api-keys). 3. Initialize your W&B project. @@ -34,9 +34,9 @@ import weave ##### print("---") print( - "You can find your Weights and Biases API key here: https://wandb.ai/settings#api" + "Create a W&B API key at: https://wandb.ai/settings#apikeys" ) -os.environ["WANDB_API_KEY"] = getpass("Enter your Weights and Biases API key: ") +os.environ["WANDB_API_KEY"] = getpass("Enter your W&B API key: ") print("---") print("You can generate your OpenAI API key here: https://platform.openai.com/api-keys") os.environ["OPENAI_API_KEY"] = getpass("Enter your OpenAI API key: ") diff --git a/weave/cookbooks/Intro_to_Weave_Hello_Trace.mdx b/weave/cookbooks/Intro_to_Weave_Hello_Trace.mdx index b44598bd69..902a83e0c3 100644 --- a/weave/cookbooks/Intro_to_Weave_Hello_Trace.mdx +++ b/weave/cookbooks/Intro_to_Weave_Hello_Trace.mdx @@ -13,7 +13,7 @@ This is an interactive notebook. You can run it locally or use the links below: Before you can begin tracing in Weave, complete the following prerequisites. -1. Install the W&B Weave SDK and log in with your [API key](https://wandb.ai/settings#api). +1. Install the W&B Weave SDK and log in with your [API key](https://wandb.ai/settings#apikeys). 2. Install the OpenAI SDK and log in with your [API key](https://platform.openai.com/api-keys). 3. Initialize your W&B project. @@ -34,9 +34,9 @@ import weave ##### print("---") print( - "You can find your Weights and Biases API key here: https://wandb.ai/settings#api" + "Create a W&B API key at: https://wandb.ai/settings#apikeys" ) -os.environ["WANDB_API_KEY"] = getpass("Enter your Weights and Biases API key: ") +os.environ["WANDB_API_KEY"] = getpass("Enter your W&B API key: ") print("---") print("You can generate your OpenAI API key here: https://platform.openai.com/api-keys") os.environ["OPENAI_API_KEY"] = getpass("Enter your OpenAI API key: ") @@ -78,4 +78,3 @@ extract_fruit(sentence) - Check out the [Quickstart guide](/weave/quickstart). - Learn more about [advanced tracing topics](/weave/tutorial-tracing_2). - Learn more about [tracing in Weave](/weave/guides/tracking/tracing) - diff --git a/weave/cookbooks/pii.mdx b/weave/cookbooks/pii.mdx index fe41c7d2bd..9b8f4c3db3 100644 --- a/weave/cookbooks/pii.mdx +++ b/weave/cookbooks/pii.mdx @@ -105,14 +105,14 @@ Before using Weave with PII data, review the best practices for using Weave with !pip install cryptography # to encrypt our data ``` -2. Set up your API keys. You can find your API keys at the following links. +2. Create API keys at: - - [W&B](https://wandb.ai/authorize) - - [Anthropic](https://console.anthropic.com/settings/keys). + - [W&B User Settings](https://wandb.ai/settings) + - [Anthropic Console](https://console.anthropic.com/settings/keys) ```python lines %%capture -# @title Make sure to set up set up your API keys correctly +# @title Set up your API keys correctly # See: https://pypi.org/project/set-env-colab-kaggle-dotenv/ for usage instructions. from set_env import set_env @@ -751,4 +751,3 @@ for entry in pii_data: encrypted_input = EncryptedSentimentAnalysisInput.encrypt(entry["text"]) await model.predict(encrypted_input) ``` - diff --git a/weave/cookbooks/source/Intro_to_Weave_Hello_Eval.ipynb b/weave/cookbooks/source/Intro_to_Weave_Hello_Eval.ipynb index 548107f2b3..f22fc6b998 100644 --- a/weave/cookbooks/source/Intro_to_Weave_Hello_Eval.ipynb +++ b/weave/cookbooks/source/Intro_to_Weave_Hello_Eval.ipynb @@ -62,7 +62,7 @@ "\n", "# Set up your W&B project and credentials\n", "os.environ[\"WANDB_ENTITY_PROJECT\"] = input(\"Set up your W&B project (team name/project name): \")\n", - "os.environ[\"WANDB_API_KEY\"] = getpass.getpass(\"Set up your W&B API key (Find it at https://wandb.ai/authorize): \")\n", + "os.environ[\"WANDB_API_KEY\"] = getpass.getpass(\"Set up your W&B API key (Create an API key at https://wandb.ai/settings): \")\n", "\n", "# Set up your OpenAI API key\n", "if inference_provider == \"OpenAI\":\n", diff --git a/weave/cookbooks/source/Intro_to_Weave_Hello_Trace.ipynb b/weave/cookbooks/source/Intro_to_Weave_Hello_Trace.ipynb index d74aa8c691..94b8c52239 100644 --- a/weave/cookbooks/source/Intro_to_Weave_Hello_Trace.ipynb +++ b/weave/cookbooks/source/Intro_to_Weave_Hello_Trace.ipynb @@ -47,7 +47,7 @@ "\n", "# Set up your W&B project and credentials\n", "os.environ[\"WANDB_ENTITY_PROJECT\"] = input(\"Set up your W&B project (team name/project name): \")\n", - "os.environ[\"WANDB_API_KEY\"] = getpass.getpass(\"Set up your W&B API key (Find it at https://wandb.ai/authorize): \")\n", + "os.environ[\"WANDB_API_KEY\"] = getpass.getpass(\"Set up your W&B API key (Create an API key at https://wandb.ai/settings): \")\n", "\n", "# Set up your OpenAI API key\n", "if inference_provider == \"OpenAI\":\n", diff --git a/weave/cookbooks/source/learn-weave-with-inference.ipynb b/weave/cookbooks/source/learn-weave-with-inference.ipynb index 8f5aa5500a..11f8e7b7b2 100644 --- a/weave/cookbooks/source/learn-weave-with-inference.ipynb +++ b/weave/cookbooks/source/learn-weave-with-inference.ipynb @@ -1,372 +1,348 @@ { - "nbformat": 4, - "nbformat_minor": 0, - "metadata": { - "colab": { - "provenance": [] - }, - "kernelspec": { - "name": "python3", - "display_name": "Python 3" - }, - "language_info": { - "name": "python" - } + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Learn Weave with W&B Inference\n", + "\n", + "This guide shows you how to use W&B Weave with [W&B Inference](https://docs.wandb.ai/inference/). Using W&B Inference, you can build and trace LLM applications using live open-source models without setting up your own infrastructure or managing API keys from multiple providers. Just [create a W&B API key](https://wandb.ai/settings) to interact with [all models hosted by W&B Inference](https://docs.wandb.ai/inference/models/).\n", + "\n", + "## What you'll learn\n", + "\n", + "This guide shows you how to:\n", + "\n", + "- Set up Weave and W&B Inference\n", + "- Build a basic LLM application with automatic tracing\n", + "- Compare multiple models\n", + "- Evaluate model performance on a dataset\n", + "- View your results in the Weave UI\n", + "\n", + "## Install Weave and OpenAI" + ] }, - "cells": [ - { - "cell_type": "markdown", - "source": [ - "# Learn Weave with W&B Inference\n", - "\n", - "This guide shows you how to use W&B Weave with [W&B Inference](https://docs.wandb.ai/inference/). Using W&B Inference, you can build and trace LLM applications using live open-source models without setting up your own infrastructure or managing API keys from multiple providers. Just obtain your W&B API key and use it to interact with [all models hosted by W&B Inference](https://docs.wandb.ai/inference/models/).\n", - "\n", - "## What you'll learn\n", - "\n", - "This guide shows you how to:\n", - "\n", - "- Set up Weave and W&B Inference\n", - "- Build a basic LLM application with automatic tracing\n", - "- Compare multiple models\n", - "- Evaluate model performance on a dataset\n", - "- View your results in the Weave UI\n", - "\n", - "## Install Weave and OpenAI" - ], - "metadata": { - "id": "gfpToYNRdk1R" - } - }, - { - "cell_type": "code", - "source": [ - "pip install weave openai" - ], - "metadata": { - "id": "GYRXa32Yd4If" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Set OpenAI API key and W&B team\n", - "\n", - "The following cell prompts you to enter your OpenAI API key and the name of the W&B team you want to send output to. If you do not have a W&B team, [create one](https://docs.wandb.ai/platform/hosting/iam/access-management/manage-organization#create-a-team).\n", - "\n", - "The notebook also prompts you to enter you to enter your W&B API key when you run `weave.init()` the first time." - ], - "metadata": { - "id": "9gi6cx-zIbYr" - } - }, - { - "cell_type": "code", - "source": [ - "WANDB_API_KEY = input(\"Enter your W&B API key: \")\n", - "WB_TEAM_NAME = input(\"Enter your W&B team name: \")" - ], - "metadata": { - "id": "vBIzIE5lIWVR" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Step 1: Trace your first LLM call\n", - "\n", - "Start with a basic example that uses Llama 3.1-8B through W&B Inference.\n", - "\n", - "When you run this code, Weave:\n", - "- Traces your LLM call automatically\n", - "- Logs inputs, outputs, latency, and token usage\n", - "- Provides a link to view your trace in the Weave UI" - ], - "metadata": { - "id": "ZZ0lir7qdz1Y" - } - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "w0IOwBZkdihh" - }, - "outputs": [], - "source": [ - "import weave\n", - "import openai\n", - "from google.colab import userdata\n", - "\n", - "team_project = WB_TEAM_NAME + \"/inference-quickstart\"\n", - "\n", - "# Initialize Weave - replace with your-team/your-project\n", - "weave.init(team_project)\n", - "\n", - "# Create an OpenAI-compatible client pointing to W&B Inference\n", - "client = openai.OpenAI(\n", - " base_url='https://api.inference.wandb.ai/v1',\n", - " api_key= WANDB_API_KEY, # Set your API as the WANDB_API_KEY environment variable\n", - " project=team_project, # Required for usage tracking\n", - ")\n", - "\n", - "# Decorate your function to enable tracing; use the standard OpenAI client\n", - "@weave.op()\n", - "def ask_llama(question: str) -> str:\n", - " response = client.chat.completions.create(\n", - " model=\"meta-llama/Llama-3.1-8B-Instruct\",\n", - " messages=[\n", - " {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n", - " {\"role\": \"user\", \"content\": question}\n", - " ],\n", - " )\n", - " return response.choices[0].message.content\n", - "\n", - "# Call your function - Weave automatically traces everything\n", - "result = ask_llama(\"What are the benefits of using W&B Weave for LLM development?\")\n", - "print(result)" - ] - }, - { - "cell_type": "markdown", - "source": [ - "## Step 2: Build a text summarization application\n", - "\n", - "Next, try running this code, which is a basic summarization app that shows how Weave traces nested operations:" - ], - "metadata": { - "id": "CAu2vifFeDUB" - } - }, - { - "cell_type": "code", - "source": [ - "import weave\n", - "import openai\n", - "\n", - "# Initialize Weave - replace with your-team/your-project\n", - "weave.init(team_project)\n", - "\n", - "client = openai.OpenAI(\n", - " base_url='https://api.inference.wandb.ai/v1',\n", - " api_key= WANDB_API_KEY, # Set your API as the WANDB_API_KEY environment variable\n", - " project= team_project, # Required for usage tracking\n", - ")\n", - "\n", - "@weave.op()\n", - "def extract_key_points(text: str) -> list[str]:\n", - " \"\"\"Extract key points from a text.\"\"\"\n", - " response = client.chat.completions.create(\n", - " model=\"meta-llama/Llama-3.1-8B-Instruct\",\n", - " messages=[\n", - " {\"role\": \"system\", \"content\": \"Extract 3-5 key points from the text. Return each point on a new line.\"},\n", - " {\"role\": \"user\", \"content\": text}\n", - " ],\n", - " )\n", - " # Returns response without blank lines\n", - " return [line for line in response.choices[0].message.content.strip().splitlines() if line.strip()]\n", - "\n", - "@weave.op()\n", - "def create_summary(key_points: list[str]) -> str:\n", - " \"\"\"Create a concise summary based on key points.\"\"\"\n", - " points_text = \"\\n\".join(f\"- {point}\" for point in key_points)\n", - " response = client.chat.completions.create(\n", - " model=\"meta-llama/Llama-3.1-8B-Instruct\",\n", - " messages=[\n", - " {\"role\": \"system\", \"content\": \"Create a one-sentence summary based on these key points.\"},\n", - " {\"role\": \"user\", \"content\": f\"Key points:\\n{points_text}\"}\n", - " ],\n", - " )\n", - " return response.choices[0].message.content\n", - "\n", - "@weave.op()\n", - "def summarize_text(text: str) -> dict:\n", - " \"\"\"Main summarization pipeline.\"\"\"\n", - " key_points = extract_key_points(text)\n", - " summary = create_summary(key_points)\n", - " return {\n", - " \"key_points\": key_points,\n", - " \"summary\": summary\n", - " }\n", - "\n", - "# Try it with sample text\n", - "sample_text = \"\"\"\n", - "The Apollo 11 mission was a historic spaceflight that landed the first humans on the Moon\n", - "on July 20, 1969. Commander Neil Armstrong and lunar module pilot Buzz Aldrin descended\n", - "to the lunar surface while Michael Collins remained in orbit. Armstrong became the first\n", - "person to step onto the Moon, followed by Aldrin 19 minutes later. They spent about\n", - "two and a quarter hours together outside the spacecraft, collecting samples and taking photographs.\n", - "\"\"\"\n", - "\n", - "result = summarize_text(sample_text)\n", - "print(\"Key Points:\", result[\"key_points\"])\n", - "print(\"\\nSummary:\", result[\"summary\"])" - ], - "metadata": { - "id": "_pHQPYr4eF9Z" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Step 3: Compare multiple models\n", - "\n", - "W&B Inference provides access to multiple models. Use the following code to compare the performance of Llama and DeepSeek's respective responses:" - ], - "metadata": { - "id": "SgkuP67beLFb" - } - }, - { - "cell_type": "code", - "source": [ - "import weave\n", - "import openai\n", - "\n", - "# Initialize Weave - replace with your-team/your-project\n", - "weave.init(team_project)\n", - "\n", - "client = openai.OpenAI(\n", - " base_url='https://api.inference.wandb.ai/v1',\n", - " api_key= WANDB_API_KEY, # Set your API as the WANDB_API_KEY environment variable\n", - " project=team_project, # Required for usage tracking\n", - ")\n", - "\n", - "# Define a Model class to compare different LLMs\n", - "class InferenceModel(weave.Model):\n", - " model_name: str\n", - "\n", - " @weave.op()\n", - " def predict(self, question: str) -> str:\n", - " response = client.chat.completions.create(\n", - " model=self.model_name,\n", - " messages=[\n", - " {\"role\": \"user\", \"content\": question}\n", - " ],\n", - " )\n", - " return response.choices[0].message.content\n", - "\n", - "# Create instances for different models\n", - "llama_model = InferenceModel(model_name=\"meta-llama/Llama-3.1-8B-Instruct\")\n", - "deepseek_model = InferenceModel(model_name=\"deepseek-ai/DeepSeek-V3-0324\")\n", - "\n", - "# Compare their responses\n", - "test_question = \"Explain quantum computing in one paragraph for a high school student.\"\n", - "\n", - "print(\"Llama 3.1 8B response:\")\n", - "print(llama_model.predict(test_question))\n", - "print(\"\\n\" + \"=\"*50 + \"\\n\")\n", - "print(\"DeepSeek V3 response:\")\n", - "print(deepseek_model.predict(test_question))" - ], - "metadata": { - "id": "RDIxMR-WealP" - }, - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Step 4: Evaluate model performance\n", - "\n", - "Evaluate how well a model performs on a Q&A task using Weave's built-in `EvaluationLogger`. This provides structured evaluation tracking with automatic aggregation, token usage capture, and rich comparison features in the UI.\n", - "\n", - "Append the following code to the script you used in step 3:" - ], - "metadata": { - "id": "yF_4aTkbeiVK" - } - }, - { - "cell_type": "code", - "source": [ - "from typing import Optional\n", - "from weave import EvaluationLogger\n", - "\n", - "# Create a simple dataset\n", - "dataset = [\n", - " {\"question\": \"What is 2 + 2?\", \"expected\": \"4\"},\n", - " {\"question\": \"What is the capital of France?\", \"expected\": \"Paris\"},\n", - " {\"question\": \"Name a primary color\", \"expected_one_of\": [\"red\", \"blue\", \"yellow\"]},\n", - "]\n", - "\n", - "# Define a scorer\n", - "@weave.op()\n", - "def accuracy_scorer(expected: str, output: str, expected_one_of: Optional[list[str]] = None) -> dict:\n", - " \"\"\"Score the accuracy of the model output.\"\"\"\n", - " output_clean = output.strip().lower()\n", - "\n", - " if expected_one_of:\n", - " is_correct = any(option.lower() in output_clean for option in expected_one_of)\n", - " else:\n", - " is_correct = expected.lower() in output_clean\n", - "\n", - " return {\"correct\": is_correct, \"score\": 1.0 if is_correct else 0.0}\n", - "\n", - "# Evaluate a model using Weave's EvaluationLogger\n", - "def evaluate_model(model: InferenceModel, dataset: list[dict]):\n", - " \"\"\"Run evaluation on a dataset using Weave's built-in evaluation framework.\"\"\"\n", - " # Initialize EvaluationLogger BEFORE calling the model to capture token usage\n", - " # This is especially important for W&B Inference to track costs\n", - " # Convert model name to a valid format (replace non-alphanumeric chars with underscores)\n", - " safe_model_name = model.model_name.replace(\"/\", \"_\").replace(\"-\", \"_\").replace(\".\", \"_\")\n", - " eval_logger = EvaluationLogger(\n", - " model=safe_model_name,\n", - " dataset=\"qa_dataset\"\n", - " )\n", - "\n", - " for example in dataset:\n", - " # Get model prediction\n", - " output = model.predict(example[\"question\"])\n", - "\n", - " # Log the prediction\n", - " pred_logger = eval_logger.log_prediction(\n", - " inputs={\"question\": example[\"question\"]},\n", - " output=output\n", - " )\n", - "\n", - " # Score the output\n", - " score = accuracy_scorer(\n", - " expected=example.get(\"expected\", \"\"),\n", - " output=output,\n", - " expected_one_of=example.get(\"expected_one_of\")\n", - " )\n", - "\n", - " # Log the score\n", - " pred_logger.log_score(\n", - " scorer=\"accuracy\",\n", - " score=score[\"score\"]\n", - " )\n", - "\n", - " # Finish logging for this prediction\n", - " pred_logger.finish()\n", - "\n", - " # Log summary - Weave automatically aggregates the accuracy scores\n", - " eval_logger.log_summary()\n", - " print(f\"Evaluation complete for {model.model_name} (logged as: {safe_model_name}). View results in the Weave UI.\")\n", - "\n", - "# Compare multiple models - a key feature of Weave's evaluation framework\n", - "models_to_compare = [\n", - " llama_model,\n", - " deepseek_model,\n", - "]\n", - "\n", - "for model in models_to_compare:\n", - " evaluate_model(model, dataset)\n", - "\n", - "# In the Weave UI, navigate to the Evals tab to compare results across models" - ], - "metadata": { - "id": "LdoQvGZceoVu" - }, - "execution_count": null, - "outputs": [] - } - ] -} \ No newline at end of file + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pip install weave openai" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Set OpenAI API key and W&B team\n", + "\n", + "The following cell prompts you to enter your OpenAI API key and the name of the W&B team you want to send output to. If you do not have a W&B team, [create one](https://docs.wandb.ai/platform/hosting/iam/access-management/manage-organization#create-a-team).\n", + "\n", + "The notebook also prompts you to enter you to enter your W&B API key when you run `weave.init()` the first time." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "WANDB_API_KEY = input(\"Enter your W&B API key: \")\n", + "WB_TEAM_NAME = input(\"Enter your W&B team name: \")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 1: Trace your first LLM call\n", + "\n", + "Start with a basic example that uses Llama 3.1-8B through W&B Inference.\n", + "\n", + "When you run this code, Weave:\n", + "- Traces your LLM call automatically\n", + "- Logs inputs, outputs, latency, and token usage\n", + "- Provides a link to view your trace in the Weave UI" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import weave\n", + "import openai\n", + "from google.colab import userdata\n", + "\n", + "team_project = WB_TEAM_NAME + \"/inference-quickstart\"\n", + "\n", + "# Initialize Weave - replace with your-team/your-project\n", + "weave.init(team_project)\n", + "\n", + "# Create an OpenAI-compatible client pointing to W&B Inference\n", + "client = openai.OpenAI(\n", + " base_url='https://api.inference.wandb.ai/v1',\n", + " api_key= WANDB_API_KEY, # Set your API as the WANDB_API_KEY environment variable\n", + " project=team_project, # Required for usage tracking\n", + ")\n", + "\n", + "# Decorate your function to enable tracing; use the standard OpenAI client\n", + "@weave.op()\n", + "def ask_llama(question: str) -> str:\n", + " response = client.chat.completions.create(\n", + " model=\"meta-llama/Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": \"You are a helpful assistant.\"},\n", + " {\"role\": \"user\", \"content\": question}\n", + " ],\n", + " )\n", + " return response.choices[0].message.content\n", + "\n", + "# Call your function - Weave automatically traces everything\n", + "result = ask_llama(\"What are the benefits of using W&B Weave for LLM development?\")\n", + "print(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 2: Build a text summarization application\n", + "\n", + "Next, try running this code, which is a basic summarization app that shows how Weave traces nested operations:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import weave\n", + "import openai\n", + "\n", + "# Initialize Weave - replace with your-team/your-project\n", + "weave.init(team_project)\n", + "\n", + "client = openai.OpenAI(\n", + " base_url='https://api.inference.wandb.ai/v1',\n", + " api_key= WANDB_API_KEY, # Set your API as the WANDB_API_KEY environment variable\n", + " project= team_project, # Required for usage tracking\n", + ")\n", + "\n", + "@weave.op()\n", + "def extract_key_points(text: str) -> list[str]:\n", + " \"\"\"Extract key points from a text.\"\"\"\n", + " response = client.chat.completions.create(\n", + " model=\"meta-llama/Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": \"Extract 3-5 key points from the text. Return each point on a new line.\"},\n", + " {\"role\": \"user\", \"content\": text}\n", + " ],\n", + " )\n", + " # Returns response without blank lines\n", + " return [line for line in response.choices[0].message.content.strip().splitlines() if line.strip()]\n", + "\n", + "@weave.op()\n", + "def create_summary(key_points: list[str]) -> str:\n", + " \"\"\"Create a concise summary based on key points.\"\"\"\n", + " points_text = \"\\n\".join(f\"- {point}\" for point in key_points)\n", + " response = client.chat.completions.create(\n", + " model=\"meta-llama/Llama-3.1-8B-Instruct\",\n", + " messages=[\n", + " {\"role\": \"system\", \"content\": \"Create a one-sentence summary based on these key points.\"},\n", + " {\"role\": \"user\", \"content\": f\"Key points:\\n{points_text}\"}\n", + " ],\n", + " )\n", + " return response.choices[0].message.content\n", + "\n", + "@weave.op()\n", + "def summarize_text(text: str) -> dict:\n", + " \"\"\"Main summarization pipeline.\"\"\"\n", + " key_points = extract_key_points(text)\n", + " summary = create_summary(key_points)\n", + " return {\n", + " \"key_points\": key_points,\n", + " \"summary\": summary\n", + " }\n", + "\n", + "# Try it with sample text\n", + "sample_text = \"\"\"\n", + "The Apollo 11 mission was a historic spaceflight that landed the first humans on the Moon\n", + "on July 20, 1969. Commander Neil Armstrong and lunar module pilot Buzz Aldrin descended\n", + "to the lunar surface while Michael Collins remained in orbit. Armstrong became the first\n", + "person to step onto the Moon, followed by Aldrin 19 minutes later. They spent about\n", + "two and a quarter hours together outside the spacecraft, collecting samples and taking photographs.\n", + "\"\"\"\n", + "\n", + "result = summarize_text(sample_text)\n", + "print(\"Key Points:\", result[\"key_points\"])\n", + "print(\"\\nSummary:\", result[\"summary\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 3: Compare multiple models\n", + "\n", + "W&B Inference provides access to multiple models. Use the following code to compare the performance of Llama and DeepSeek's respective responses:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import weave\n", + "import openai\n", + "\n", + "# Initialize Weave - replace with your-team/your-project\n", + "weave.init(team_project)\n", + "\n", + "client = openai.OpenAI(\n", + " base_url='https://api.inference.wandb.ai/v1',\n", + " api_key= WANDB_API_KEY, # Set your API as the WANDB_API_KEY environment variable\n", + " project=team_project, # Required for usage tracking\n", + ")\n", + "\n", + "# Define a Model class to compare different LLMs\n", + "class InferenceModel(weave.Model):\n", + " model_name: str\n", + "\n", + " @weave.op()\n", + " def predict(self, question: str) -> str:\n", + " response = client.chat.completions.create(\n", + " model=self.model_name,\n", + " messages=[\n", + " {\"role\": \"user\", \"content\": question}\n", + " ],\n", + " )\n", + " return response.choices[0].message.content\n", + "\n", + "# Create instances for different models\n", + "llama_model = InferenceModel(model_name=\"meta-llama/Llama-3.1-8B-Instruct\")\n", + "deepseek_model = InferenceModel(model_name=\"deepseek-ai/DeepSeek-V3-0324\")\n", + "\n", + "# Compare their responses\n", + "test_question = \"Explain quantum computing in one paragraph for a high school student.\"\n", + "\n", + "print(\"Llama 3.1 8B response:\")\n", + "print(llama_model.predict(test_question))\n", + "print(\"\\n\" + \"=\"*50 + \"\\n\")\n", + "print(\"DeepSeek V3 response:\")\n", + "print(deepseek_model.predict(test_question))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 4: Evaluate model performance\n", + "\n", + "Evaluate how well a model performs on a Q&A task using Weave's built-in `EvaluationLogger`. This provides structured evaluation tracking with automatic aggregation, token usage capture, and rich comparison features in the UI.\n", + "\n", + "Append the following code to the script you used in step 3:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from typing import Optional\n", + "from weave import EvaluationLogger\n", + "\n", + "# Create a simple dataset\n", + "dataset = [\n", + " {\"question\": \"What is 2 + 2?\", \"expected\": \"4\"},\n", + " {\"question\": \"What is the capital of France?\", \"expected\": \"Paris\"},\n", + " {\"question\": \"Name a primary color\", \"expected_one_of\": [\"red\", \"blue\", \"yellow\"]},\n", + "]\n", + "\n", + "# Define a scorer\n", + "@weave.op()\n", + "def accuracy_scorer(expected: str, output: str, expected_one_of: Optional[list[str]] = None) -> dict:\n", + " \"\"\"Score the accuracy of the model output.\"\"\"\n", + " output_clean = output.strip().lower()\n", + "\n", + " if expected_one_of:\n", + " is_correct = any(option.lower() in output_clean for option in expected_one_of)\n", + " else:\n", + " is_correct = expected.lower() in output_clean\n", + "\n", + " return {\"correct\": is_correct, \"score\": 1.0 if is_correct else 0.0}\n", + "\n", + "# Evaluate a model using Weave's EvaluationLogger\n", + "def evaluate_model(model: InferenceModel, dataset: list[dict]):\n", + " \"\"\"Run evaluation on a dataset using Weave's built-in evaluation framework.\"\"\"\n", + " # Initialize EvaluationLogger BEFORE calling the model to capture token usage\n", + " # This is especially important for W&B Inference to track costs\n", + " # Convert model name to a valid format (replace non-alphanumeric chars with underscores)\n", + " safe_model_name = model.model_name.replace(\"/\", \"_\").replace(\"-\", \"_\").replace(\".\", \"_\")\n", + " eval_logger = EvaluationLogger(\n", + " model=safe_model_name,\n", + " dataset=\"qa_dataset\"\n", + " )\n", + "\n", + " for example in dataset:\n", + " # Get model prediction\n", + " output = model.predict(example[\"question\"])\n", + "\n", + " # Log the prediction\n", + " pred_logger = eval_logger.log_prediction(\n", + " inputs={\"question\": example[\"question\"]},\n", + " output=output\n", + " )\n", + "\n", + " # Score the output\n", + " score = accuracy_scorer(\n", + " expected=example.get(\"expected\", \"\"),\n", + " output=output,\n", + " expected_one_of=example.get(\"expected_one_of\")\n", + " )\n", + "\n", + " # Log the score\n", + " pred_logger.log_score(\n", + " scorer=\"accuracy\",\n", + " score=score[\"score\"]\n", + " )\n", + "\n", + " # Finish logging for this prediction\n", + " pred_logger.finish()\n", + "\n", + " # Log summary - Weave automatically aggregates the accuracy scores\n", + " eval_logger.log_summary()\n", + " print(f\"Evaluation complete for {model.model_name} (logged as: {safe_model_name}). View results in the Weave UI.\")\n", + "\n", + "# Compare multiple models - a key feature of Weave's evaluation framework\n", + "models_to_compare = [\n", + " llama_model,\n", + " deepseek_model,\n", + "]\n", + "\n", + "for model in models_to_compare:\n", + " evaluate_model(model, dataset)\n", + "\n", + "# In the Weave UI, navigate to the Evals tab to compare results across models" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} diff --git a/weave/cookbooks/source/pii.ipynb b/weave/cookbooks/source/pii.ipynb index f95712e91f..91206fb600 100644 --- a/weave/cookbooks/source/pii.ipynb +++ b/weave/cookbooks/source/pii.ipynb @@ -150,20 +150,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "2. Set up your API keys. You can find your API keys at the following links.\n", + "2. Create API keys at:\n", "\n", - " - [W&B](https://wandb.ai/authorize)\n", - " - [Anthropic](https://console.anthropic.com/settings/keys).\n" + " - [W&B User Settings](https://wandb.ai/settings)\n", + " - [Anthropic Console](https://console.anthropic.com/settings/keys)\n" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%%capture\n", - "# @title Make sure to set up set up your API keys correctly\n", + "# @title Set up your API keys correctly\n", "# See: https://pypi.org/project/set-env-colab-kaggle-dotenv/ for usage instructions.\n", "\n", "from set_env import set_env\n", diff --git a/weave/cookbooks/source/wandb_mcp_server.ipynb b/weave/cookbooks/source/wandb_mcp_server.ipynb index a0b308b671..4f7c6469f5 100644 --- a/weave/cookbooks/source/wandb_mcp_server.ipynb +++ b/weave/cookbooks/source/wandb_mcp_server.ipynb @@ -58,7 +58,7 @@ " curl -LsSf https://astral.sh/uv/install.sh | sh\n", " ```\n", "\n", - "2. Get your W&B API key from [wandb.ai/authorize](https://wandb.ai/authorize)\n", + "2. Create an API key at [wandb.ai/settings](https://wandb.ai/settings)\n", "\n", "3. Configure your AI assistant by adding the MCP server to its configuration file:\n", " ```json\n", diff --git a/weave/cookbooks/source/weave_via_service_api.ipynb b/weave/cookbooks/source/weave_via_service_api.ipynb index 0221d15195..0255b6218a 100644 --- a/weave/cookbooks/source/weave_via_service_api.ipynb +++ b/weave/cookbooks/source/weave_via_service_api.ipynb @@ -55,7 +55,7 @@ "\n", "- `project_id`: The name of the W&B project that you want to log your traces to.\n", "- `team_id`: Your W&B team name.\n", - "- `wandb_token`: Your [W&B authorization token](https://wandb.ai/authorize)." + "- `wandb_token`: Your [W&B API key](https://wandb.ai/settings)." ] }, { diff --git a/weave/cookbooks/weave_via_service_api.mdx b/weave/cookbooks/weave_via_service_api.mdx index 4fe391d473..9f5d5e873c 100644 --- a/weave/cookbooks/weave_via_service_api.mdx +++ b/weave/cookbooks/weave_via_service_api.mdx @@ -35,7 +35,7 @@ Additionally, you must set the following variables: - `project_id`: The name of the W&B project that you want to log your traces to. - `team_id`: Your W&B team name. -- `wandb_token`: Your [W&B authorization token](https://wandb.ai/authorize). +- `wandb_token`: Your [W&B API key](https://wandb.ai/settings). ```python lines import datetime diff --git a/weave/guides/core-types/env-vars.mdx b/weave/guides/core-types/env-vars.mdx index 37c492a2f1..6b510d9020 100644 --- a/weave/guides/core-types/env-vars.mdx +++ b/weave/guides/core-types/env-vars.mdx @@ -23,7 +23,7 @@ os.environ["WEAVE_PRINT_CALL_LINK"] = "false" | Variable | Type | Default | Description | |----------|------|---------|-------------| -| `WANDB_API_KEY` | `string` | `None` | If set, automatically log into W&B Weave without being prompted for your API key. To generate an API key, log in to your W&B account and go to [https://wandb.ai/authorize](https://wandb.ai/authorize). | +| `WANDB_API_KEY` | `string` | `None` | If set, automatically log into W&B Weave without being prompted for your API key. To generate an API key, log in to your W&B account and go to [User Settings](https://wandb.ai/settings). | | `WEAVE_DISABLED` | `bool` | `false` | When set to `true`, disables all Weave tracing. Weave ops will behave like regular functions. | | `WEAVE_PRINT_CALL_LINK` | `bool` | `true` | Controls whether to print a link to the Weave UI when calling a Weave op. You can also set this directly in your code by configuring the `settings` argument for `weave.init()` like this: `weave.init("your-project-name", settings={"print_call_link": False})` | | `WEAVE_LOG_LEVEL` | `str` | `INFO` | Controls the log level of the weave logger. diff --git a/weave/guides/integrations/agno.mdx b/weave/guides/integrations/agno.mdx index bed2e09e8c..7c5bb5a8f0 100644 --- a/weave/guides/integrations/agno.mdx +++ b/weave/guides/integrations/agno.mdx @@ -65,7 +65,7 @@ from opentelemetry import trace WANDB_BASE_URL = "https://trace.wandb.ai" # Your W&B entity/project name e.g. "myteam/myproject" PROJECT_ID = os.environ.get("WANDB_PROJECT_ID") -# Your W&B API key (found at https://wandb.ai/authorize) +# Create a W&B API key at https://wandb.ai/settings WANDB_API_KEY = os.environ.get("WANDB_API_KEY") OTEL_EXPORTER_OTLP_ENDPOINT = f"{WANDB_BASE_URL}/otel/v1/traces" @@ -352,4 +352,4 @@ Memory operations, including storing and retrieving conversation history, will b - [Official Agno documentation](https://docs.agno.com/) - [Official OTEL documentation](https://opentelemetry.io/) - [Agno GitHub repository](https://github.com/agno-agi/agno) -- [OpenInference Agno instrumentation](https://pypi.org/project/openinference-instrumentation-agno/) \ No newline at end of file +- [OpenInference Agno instrumentation](https://pypi.org/project/openinference-instrumentation-agno/) diff --git a/weave/guides/integrations/google_adk.mdx b/weave/guides/integrations/google_adk.mdx index a5f1729ec9..c3e3df677e 100644 --- a/weave/guides/integrations/google_adk.mdx +++ b/weave/guides/integrations/google_adk.mdx @@ -62,7 +62,7 @@ from opentelemetry import trace WANDB_BASE_URL = "https://trace.wandb.ai" # Your W&B entity/project name e.g. "myteam/myproject" PROJECT_ID = os.environ.get("WANDB_PROJECT_ID") -# Your W&B API key (found at https://wandb.ai/authorize) +# Create a W&B API key at https://wandb.ai/settings WANDB_API_KEY = os.environ.get("WANDB_API_KEY") OTEL_EXPORTER_OTLP_ENDPOINT = f"{WANDB_BASE_URL}/otel/v1/traces" diff --git a/weave/guides/integrations/inference.mdx b/weave/guides/integrations/inference.mdx index 702d39b76e..7e167a4108 100644 --- a/weave/guides/integrations/inference.mdx +++ b/weave/guides/integrations/inference.mdx @@ -49,7 +49,7 @@ This guide provides the following information: The following prerequisites are required to access the W&B Inference service via the API or the W&B Weave UI. 1. A W&B account. Sign up [here](https://app.wandb.ai/login?signup=true&_gl=1*1yze8dp*_ga*ODIxMjU5MTk3LjE3NDk0OTE2NDM.*_ga_GMYDGNGKDT*czE3NDk4NDYxMzgkbzEyJGcwJHQxNzQ5ODQ2MTM4JGo2MCRsMCRoMA..*_ga_JH1SJHJQXJ*czE3NDk4NDU2NTMkbzI1JGcxJHQxNzQ5ODQ2MTQ2JGo0NyRsMCRoMA..*_gcl_au*MTE4ODk1MzY1OC4xNzQ5NDkxNjQzLjk1ODA2MjQwNC4xNzQ5NTgyMTUzLjE3NDk1ODIxNTM.). -2. A W&B API key. Get your API key at [https://wandb.ai/authorize](https://wandb.ai/authorize). +2. A W&B API key. Create an API key at [User Settings](https://wandb.ai/settings). 3. A W&B project. 4. If you are using the Inference service via Python, see [Additional prerequisites for using the API via Python](#additional-prerequisites-for-using-the-api-via-python). @@ -135,7 +135,7 @@ To create a chat completion, you will need: # The custom base URL points to W&B Inference base_url='https://api.inference.wandb.ai/v1', - # Get your API key from https://wandb.ai/authorize + # Create an API key at https://wandb.ai/settings # Consider setting it in the environment as OPENAI_API_KEY instead for safety api_key="", @@ -229,7 +229,7 @@ weave.init("/") client = openai.OpenAI( base_url='https://api.inference.wandb.ai/v1', - # Get your API key from https://wandb.ai/authorize + # Create an API key at https://wandb.ai/settings api_key="", # Required for W&B inference usage tracking @@ -297,7 +297,7 @@ class WBInferenceModel(weave.Model): def predict(self, prompt: str) -> str: client = openai.OpenAI( base_url="https://api.inference.wandb.ai/v1", - # Get your API key from https://wandb.ai/authorize + # Create an API key at https://wandb.ai/settings api_key="", # Required for W&B inference usage tracking project="/", diff --git a/weave/guides/tracking/otel.mdx b/weave/guides/tracking/otel.mdx index 9bb1548cec..4ebb737136 100644 --- a/weave/guides/tracking/otel.mdx +++ b/weave/guides/tracking/otel.mdx @@ -31,7 +31,7 @@ Standard W&B authentication is used. You must have write permissions to the proj ## Examples: You must modify the following fields before you can run the code samples below: -1. `WANDB_API_KEY`: You can get this from [https://wandb.ai/authorize](https://wandb.ai/authorize). +1. `WANDB_API_KEY`: You can get this from [User Settings](https://wandb.ai/settings). 2. Entity: You can only log traces to the project under an entity that you have access to. You can find your entity name by visiting your W&N dashboard at [https://wandb.ai/home], and checking the **Teams** field in the left sidebar. 3. Project Name: Choose a fun name! 4. `OPENAI_API_KEY`: You can obtain this from the [OpenAI dashboard](https://platform.openai.com/api-keys). @@ -66,7 +66,7 @@ PROJECT_ID = "/" OTEL_EXPORTER_OTLP_ENDPOINT = f"{WANDB_BASE_URL}/otel/v1/traces" -# Can be found at https://wandb.ai/authorize +# Create an API key at https://wandb.ai/settings WANDB_API_KEY = "" AUTH = base64.b64encode(f"api:{WANDB_API_KEY}".encode()).decode() @@ -140,7 +140,7 @@ PROJECT_ID = "/" OTEL_EXPORTER_OTLP_ENDPOINT = f"{WANDB_BASE_URL}/otel/v1/traces" -# Can be found at https://wandb.ai/authorize +# Create an API key at https://wandb.ai/settings WANDB_API_KEY = "" AUTH = base64.b64encode(f"api:{WANDB_API_KEY}".encode()).decode() @@ -215,7 +215,7 @@ PROJECT_ID = "/" OTEL_EXPORTER_OTLP_ENDPOINT = f"{WANDB_BASE_URL}/otel/v1/traces" -# Can be found at https://wandb.ai/authorize +# Create an API key at https://wandb.ai/settings WANDB_API_KEY = "" AUTH = base64.b64encode(f"api:{WANDB_API_KEY}".encode()).decode() @@ -574,4 +574,4 @@ Weave supports attribute conventions from the following observability frameworks ## Limitations -* The Weave UI does not support rendering OTEL trace tool calls the Chat view. They appear as raw JSON, instead. \ No newline at end of file +* The Weave UI does not support rendering OTEL trace tool calls the Chat view. They appear as raw JSON, instead. diff --git a/weave/quickstart-inference.mdx b/weave/quickstart-inference.mdx index 9249f50938..6a98f46394 100644 --- a/weave/quickstart-inference.mdx +++ b/weave/quickstart-inference.mdx @@ -532,7 +532,7 @@ For a complete list of available models, see the [Available Models section](http If you get authentication errors: 1. Verify you have a valid W&B account -2. Check that you're using the correct API key from [wandb.ai/authorize](https://wandb.ai/authorize) +2. Check that you're using the correct API key from [wandb.ai/settings](https://wandb.ai/settings) 3. Ensure your project name follows the format `team-name/project-name`