Path: blob/master/cpd5.2/notebooks/python_sdk/deployments/foundation_models/Use watsonx and IBM `granite-3-8b-code-instruct` to generate code based on instruction.ipynb
6412 views
Use watsonx and IBM granite-8b-code-instruct
to generate code based on instruction
Disclaimers
Use only Projects and Spaces that are available in watsonx context.
Notebook content
This notebook contains the steps and code to demonstrate support for code generation in watsonx.ai. It introduces commands for defining prompt and model testing.
Some familiarity with Python is helpful. This notebook uses Python 3.12.
Learning goal
The goal of this notebook is to demonstrate how to generate code using ibm/granite-8b-code-instruct
model based on instruction provided by the user.
Contents
This notebook contains the following parts:
Install dependencies
Note: ibm-watsonx-ai
documentation can be found here.
Successfully installed anyio-4.9.0 certifi-2025.4.26 charset-normalizer-3.4.2 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 ibm-cos-sdk-2.14.0 ibm-cos-sdk-core-2.14.0 ibm-cos-sdk-s3transfer-2.14.0 ibm-watsonx-ai-1.3.13 idna-3.10 jmespath-1.0.1 lomond-0.3.3 numpy-2.2.5 pandas-2.2.3 pytz-2025.2 requests-2.32.2 sniffio-1.3.1 tabulate-0.9.0 typing_extensions-4.13.2 tzdata-2025.2 urllib3-2.4.0
Define credentials
Authenticate the watsonx.ai Runtime service on IBM Cloud Pak for Data. You need to provide the admin's username
and the platform url
.
Use the admin's api_key
to authenticate watsonx.ai Runtime services:
Alternatively you can use the admin's password
:
Working with projects
First of all, you need to create a project that will be used for your work. If you do not have a project created already, follow the steps below:
Open IBM Cloud Pak main page
Click all projects
Create an empty project
Copy
project_id
from url and paste it below
Action: Assign project ID below
Create APIClient
instance
Foundation models in watsonx.ai
List available models
You need to specify model_id
that will be used for inferencing:
Defining the model parameters
You might need to adjust model parameters
for different models or tasks, to do so please refer to documentation.
Initialize the model
Initialize the model inference with previously set parameters.
Get model details
Define instructions for the model with at-least one example.
Prepare question for the model.
Generate the code using ibm/granite-8b-code-instruct
model.
Inference the model to generate the code, according to provided instruction.
Formatting the text to get the function itself
The resulting code looks as below.
Use generated code to make it as function.
Note: Before executing this line, make sure the model's output visible above doesn't contain any malicious instructions.
Define the number 'n' for which the primes() function should process prime numbers.
Test and run the generated function.
Summary and next steps
You successfully completed this notebook!
You learned how to generate code based on instruction with ibm/granite-8b-code-instruct
in watsonx.ai.
Check out our Online Documentation for more samples, tutorials, documentation, how-tos, and blog posts.
Authors
Mateusz Szewczyk, Software Engineer at watsonx.ai.
Copyright © 2023-2025 IBM. This notebook and its source code are released under the terms of the MIT License.