Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
Anonymous
Not applicable

Fabric - cant import AzureOpenAI

when you try to run the sample code in a fabric pyspark(python) notebook you might instantly hit the following issue

 

ImportError: cannot import name 'AzureOpenAI' from 'openai' (/home/trusted-service-user/cluster-env/trident_env/lib/python3.10/site-packages/openai/__init__.py)

 

This is because the version 0.27.8 is the default in the fabric environment. To force a newer verison make sure to install it either inline or via an environment config

 

here is the inline code:

%pip install openai==1.12.0
2 ACCEPTED SOLUTIONS
Anonymous
Not applicable

Hi. I must have chose the wrong type of post. I was not Posting a question but a solution.

I followed the instructions from the github repo and ran into Thais issue. That's why I thought I'd post the solution for others to benefit.

View solution in original post

Anonymous
Not applicable

here is the inline code needed at the top of your script

 

%pip install openai==1.12.0

View solution in original post

8 REPLIES 8
edchuy
Helper V
Helper V

You might want to take a look at this:

 

Access Azure OpenAI for Hack Together, for Free! 

 

Let us know if you managed to make it work.

Hi! Do you know how to use this openai endpoint with Python? I am not sure how to authenticate correctly.

Anonymous
Not applicable

The github page has all you need. the sample uses environment variables. not that simple in fabric. so if you want to get started fast, try putting the parameters into the code directly.

 

instructions on getting started and getting your API Key here:

Hack-Together-Fabric-AI/AI_access.md at main · microsoft/Hack-Together-Fabric-AI · GitHub 

 

sample code to talk to the api here

azure-openai-service-proxy/examples/python/openai_sdk_1.x/azure_openai_chat.py at main · microsoft/a...

 

and to make your life easier: here a snippet that worked for me. just replace the api key

%pip install openai==1.12.0

import openai
from openai import AzureOpenAI

client = AzureOpenAI(
api_key="your-api-key-from-the-step-previous",
api_version="2023-09-01-preview",
)

MESSAGES = [
{"role": "system", "content": """you are a funny bot"""},
{"role": "user", "content": "tell me a joke about pumpkins"},
{"role": "assistant","content": "Why do pumpkins sit on people's porches? They have no hands to knock on the door!"},
]
MESSAGES.append({"role": "user", "content": "tell me a joke about frogs"})

completion = client.chat.completions.create(model="gpt-35-turbo", messages=MESSAGES,temperature=0.9)
print(completion.choices[0].message.content)

Thanks a lot. This was helpful.

 

Anonymous
Not applicable

Hi. I must have chose the wrong type of post. I was not Posting a question but a solution.

I followed the instructions from the github repo and ran into Thais issue. That's why I thought I'd post the solution for others to benefit.

Anonymous
Not applicable

here is the inline code needed at the top of your script

 

%pip install openai==1.12.0

OK. That's good to know.

Anonymous
Not applicable

FYI. If you plan to run a notebook on a schedule or via Rest-API, then you'll have issues as %pip magic is disabled there. Need to create a custom environment with the correct openai dll pre-loaded and use that instead. Makes the startup of the notebook much slower though. instead of 5-10s for getting a running starterpool it will take 1-2 minutes. 

Helpful resources

Announcements
MarchFBCvideo - carousel

Fabric Monthly Update - March 2025

Check out the March 2025 Fabric update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

"); $(".slidesjs-pagination" ).prependTo(".pagination_sec"); $(".slidesjs-pagination" ).append("
"); $(".slidesjs-play.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-stop.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-pagination" ).append(""); $(".slidesjs-pagination" ).append(""); } catch(e){ } /* End: This code is added by iTalent as part of iTrack COMPL-455 */ $(".slidesjs-previous.slidesjs-navigation").attr('tabindex', '0'); $(".slidesjs-next.slidesjs-navigation").attr('tabindex', '0'); /* start: This code is added by iTalent as part of iTrack 1859082 */ $('.slidesjs-play.slidesjs-navigation').attr('id','playtitle'); $('.slidesjs-stop.slidesjs-navigation').attr('id','stoptitle'); $('.slidesjs-play.slidesjs-navigation').attr('role','tab'); $('.slidesjs-stop.slidesjs-navigation').attr('role','tab'); $('.slidesjs-play.slidesjs-navigation').attr('aria-describedby','tip1'); $('.slidesjs-stop.slidesjs-navigation').attr('aria-describedby','tip2'); /* End: This code is added by iTalent as part of iTrack 1859082 */ }); $(document).ready(function() { if($("#slides .item").length < 2 ) { /* Fixing Single Slide click issue (commented following code)*/ // $(".item").css("left","0px"); $(".item.slidesjs-slide").attr('style', 'left:0px !important'); $(".slidesjs-stop.slidesjs-navigation").trigger('click'); $(".slidesjs-previous").css("display", "none"); $(".slidesjs-next").css("display", "none"); } var items_length = $(".item.slidesjs-slide").length; $(".slidesjs-pagination-item > button").attr("aria-setsize",items_length); $(".slidesjs-next, .slidesjs-pagination-item button").attr("tabindex","-1"); $(".slidesjs-pagination-item button").attr("role", "tab"); $(".slidesjs-previous").attr("tabindex","-1"); $(".slidesjs-next").attr("aria-hidden","true"); $(".slidesjs-previous").attr("aria-hidden","true"); $(".slidesjs-next").attr("aria-label","Next"); $(".slidesjs-previous").attr("aria-label","Previous"); //$(".slidesjs-stop.slidesjs-navigation").attr("role","button"); //$(".slidesjs-play.slidesjs-navigation").attr("role","button"); $(".slidesjs-pagination").attr("role","tablist").attr("aria-busy","true"); $("li.slidesjs-pagination-item").attr("role","list"); $(".item.slidesjs-slide").attr("tabindex","-1"); $(".item.slidesjs-slide").attr("aria-label","item"); /*$(".slidesjs-stop.slidesjs-navigation").on('click', function() { var itemNumber = parseInt($('.slidesjs-pagination-item > a.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); });*/ $(".slidesjs-stop.slidesjs-navigation, .slidesjs-pagination-item > button").on('click keydown', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); var itemNumber = parseInt($('.slidesjs-pagination-item > button.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); }); $(".slidesjs-play.slidesjs-navigation").on('click', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); }); $(".slidesjs-pagination-item button").keyup(function(e){ var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".slidesjs-stop.slidesjs-navigation").trigger('click').blur(); $("button.active").focus(); } }); $(".slidesjs-play").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-stop").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-play")) { $(".slidesjs-stop").focus(); } } }); $(".slidesjs-stop").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-play").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-stop")) { $(".slidesjs-play").focus(); } } }); $(".slidesjs-pagination-item").keydown(function(e){ switch (e.which){ case 37: //left arrow key $(".slidesjs-previous.slidesjs-navigation").trigger('click'); e.preventDefault(); break; case 39: //right arrow key $(".slidesjs-next.slidesjs-navigation").trigger('click'); e.preventDefault(); break; default: return; } $(".slidesjs-pagination-item button.active").focus(); }); }); // Start This code is added by iTalent as part of iTrack 1859082 $(document).ready(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); $("#tip2").attr("aria-hidden","true").addClass("hidden"); $(".slidesjs-stop.slidesjs-navigation, .slidesjs-play.slidesjs-navigation").attr('title', ''); $("a#playtitle").focus(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").mouseover(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").blur(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#playtitle").mouseleave(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#play").keydown(function(ev){ if (ev.which ==27) { $("#tip1").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); $("a#stoptitle").focus(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").mouseover(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").blur(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").mouseleave(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").keydown(function(ev){ if (ev.which ==27) { $("#tip2").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); }); // End This code is added by iTalent as part of iTrack 1859082