diff --git a/ai-vector-image/apex/apex.html b/ai-vector-image/apex/apex.html new file mode 100644 index 000000000..a412754df --- /dev/null +++ b/ai-vector-image/apex/apex.html @@ -0,0 +1,533 @@ + + + + + Build an APEX app for AI Vector Search + + + + + + + + + + + + +

Build an APEX app for AI Vector Search

+

Introduction

+

This lab will walk you through the steps to create an APEX application that will leverage all of the data you have loaded plus AI Vector Search

+

Estimated Lab Time: 20 minutes

+

Objectives

+

In this lab, you will:

+ +

Prerequisites (Optional)

+

This lab assumes you have:

+ +

Task 1: Create a Workspace and APEX User

+

This task you will log into APEX with the ADMIN user and create a workspace for your specific application. Take note of the workspace, user and password for this application as it will be different than your database user.

+
    +
  1. +

    Open the "View Login Info" section of your workshop.

    +

    Image alt text

    +
  2. +
  3. +

    You will use the APEX URL to open APEX

    +
  4. +
+

Image alt text

+
    +
  1. +

    Login using:

    + +
  2. +
  3. +

    It will ask you to change the password. You can change the password or you can use the existing password

    +
  4. +
  5. +

    Click on "Create Workspace"

    +
  6. +
  7. +

    For Workspace Name type in "Vector" and click Next

    +
  8. +
  9. +

    For "Re-Use existing schema?" set this to Yes

    +
  10. +
  11. +

    For Schema Name type in "ADMIN" and click Next. +Note: By doing this you have linked your application with your database schema where your tables reside.

    +
  12. +
  13. +

    For the Identify Administrator section fill in:

    + +
  14. +
  15. +

    Click Next

    +
  16. +
  17. +

    Click Create Workspace

    +
  18. +
  19. +

    Click Done

    +
  20. +
  21. +

    Click on admin in the upper right corner and click sign out

    +
  22. +
  23. +

    Click on Return to Sign In Page

    +
  24. +
  25. +

    On the page fill in the following values:

    + +
  26. +
  27. +

    Again you will be asked to create a new password. You can use the same password or change it.

    +
  28. +
  29. +

    You should now be on the main landing page of APEX

    +
  30. +
+

Task 2: Create Application

+

In this task you will create the application so you can start building pages.

+
    +
  1. +

    Click on App Builder Icon

    +
  2. +
  3. +

    Click on Create a New App

    +
  4. +
  5. +

    Name your application. I'm going to use "Vector Image" then click Create Application

    +
  6. +
+ +

In this task you will create the Image Gallery page. This page will display the images that are brought back from your AI Vector Search based on input from the user.

+
    +
  1. +

    Click on Create Page

    +
  2. +
  3. +

    Choose Cards

    +
  4. +
  5. +

    On this page:

    + +
  6. +
  7. +

    On this page:

    + +
  8. +
  9. +

    On the left panel where you see the section called Body, right click on the word Body and choose "Create Page Item" We will use this as a text entry box for searching.

    +
  10. +
  11. +

    If you click on the newly created Item on the left side of the page then on the right side of the page you will see the Page Item panel for that item. Make the following changes in the Page Item Panel:

    + +
  12. +
  13. +

    In the panel on the left, Drag the P4_SEARCH_ITEM up above the Image Gallery page item. This will make it so your search box will be at the top of the page.

    +
  14. +
  15. +

    Click on the Image Gallery page item and make the following changes in the Region panel on the right:

    +
  16. +
+
- Under source change the Type to SQL Query
+- For the SQL Query paste the following:
+```
+<copy>
+select URL,
+   IMG,
+   UFORM_DESC,
+   UFORM_VECTOR,
+   NLP_DESC,
+   NLP_VECTOR
+from VECTOR_IMAGE
+ORDER BY VECTOR_DISTANCE( uform_vector, vector_embedding(minilm12v2 using :P4_SEARCH_ITEM as data), EUCLIDEAN ) 
+FETCH EXACT FIRST 2 ROWS ONLY
+</copy>
+```
+- In the Page Items to Submit section click on the menu button on the right and click on P4_SEARCH_ITEM
+
+
    +
  1. +

    Click on the Attributes Tab

    +
  2. +
  3. +

    Change the following:

    + +
  4. +
  5. +

    Right click on P4_ORDER_BY in the left panel and select delete

    +
  6. +
  7. +

    Click on Save

    +
  8. +
  9. +

    If you want to see how your page looks click on the run button

    +
  10. +
  11. +

    You will need to login to your application

    + +
  12. +
  13. +

    Try typing in Fruit or Climbing in the search bar

    +
  14. +
  15. +

    You can close your application page but leave your Application Designer/Builder page open

    +
  16. +
+

Task 4: Create Image Detail Page

+

In this task you will create the Image Detail Page that will display information like the descriptions and vectors for the image selected. You will also create a link back to the Image Gallery Page.

+
    +
  1. +

    If you are not at the application builder home page click on the Application Breadcrumb at the top corner of the page

    +
  2. +
  3. +

    You should be on a page that looks like the image below

    +
  4. +
  5. +

    Click on Create Page

    +
  6. +
  7. +

    Choose Interactive Report

    +
  8. +
  9. +

    On this page:

    + +
  10. +
  11. +

    On the left panel where you see the section called Body, right click on the word Body and choose "Create Page Item". This will be a variable so that you can pass which image you want to see the detail from the Image Gallery page.

    +
  12. +
  13. +

    If you click on the newly created Item then on the right side of the page you will see the Page Item panel for that item. Make the following changes in the Page Item Panel:

    + +
  14. +
  15. +

    In the panel on the left, Drag the P2_URL up above the Image Detail page item

    +
  16. +
  17. +

    Click on the Image Detail in the left panel to pull up its details

    +
  18. +
  19. +

    In the Where Clause section paste "URL = :P2_URL" (without the double quotes)

    +
  20. +
  21. +

    In the Page Items to Submit section click on the menu button on the right and click on P2_URL

    +
  22. +
  23. +

    Back on the left side panel right click on image detail and click on duplicate

    +
  24. +
  25. +

    Expand the column list of the top image detail page item and do the following:

    + +
  26. +
  27. +

    Expand the columns list of the bottom image detail page item and do the following:

    + +
  28. +
  29. +

    Right click on Body in the left panel and click on Create Button

    +
  30. +
  31. +

    Click on the button on the left and in the Button panel on the right change the following:

    + +
  32. +
  33. +

    Click on Save on the Page

    +
  34. +
  35. +

    Click on the application breadcrumb at the top left corner of the page

    +
  36. +
+ +

In this task you will link the Image Gallery page to the Image Detail Pages so when you click on an image you will get the details for it.

+
    +
  1. +

    If you are not at the application builder home page click on the Application Breadcrumb at the top of the page

    +
  2. +
  3. +

    You should be on a page that looks like the image below

    +
  4. +
  5. +

    Click on your Image Gallery page

    +
  6. +
  7. +

    In the left panel Under Image Gallery right click on Actions and Choose create action

    +
  8. +
  9. +

    In the Action Panel on the right make the following changes

    + +
  10. +
  11. +

    Click Save on the page

    +
  12. +
+

Task 6: Running the Application

+
    +
  1. +

    To run your application do one of the following:

    +
      +
    1. If you are still on the Image Gallery page you can click on the run button to start your application.
    2. +
    3. If you are on the Application Builder home page then click on the Image Gallery page and then click the run button.
    4. +
    5. If you are on the Image Detail page you can click the application breadcrumb at the top of the page to get to the Application Builder home page the follow the instructions above.
    6. +
    +
  2. +
  3. +

    If you need to login use:

    + +
  4. +
  5. +

    If you want you can click on the Menu and select Image Gallery to get to the Image Gallery page as well.

    +
  6. +
  7. +

    In your search bar type in Fruit or Surfing or whatever you want to search on

    +
  8. +
  9. +

    Click on an image to go to your detail page

    +
  10. +
  11. +

    On the detail page you can see both descriptions and what the vectors for the descriptions are. At the bottom is the button to go back to the Image Gallery page.

    +
  12. +
+

Congradulations, you have built a AI Vector Search enabled application using images!

+

Learn More

+

(optional - include links to docs, white papers, blogs, etc)

+ +

Acknowledgements

+ + + + + + \ No newline at end of file diff --git a/ai-vector-image/apex/apex.md b/ai-vector-image/apex/apex.md new file mode 100644 index 000000000..4eb6775d8 --- /dev/null +++ b/ai-vector-image/apex/apex.md @@ -0,0 +1,423 @@ +# Build an APEX app for AI Vector Search + +## Introduction + +This lab will walk you through the steps to create an APEX application that will leverage all of the data you have loaded plus AI Vector Search + +Estimated Lab Time: 20 minutes + +### Objectives + +In this lab, you will: +* Create a workspace for your application +* Create a page to search your images using AI Vector Search +* Create a page to display the details of an image +* Link the two pages together + +### Prerequisites + +This lab assumes you have: +* All previous labs successfully completed + + +## Task 1: Create a Workspace and APEX User + +This task you will log into APEX with the ADMIN user and create a workspace for your specific application. Take note of the workspace, user and password for this application as it will be different than your database user. + +1. Open the "View Login Info" section of your workshop. + + ![Image alt text](images/lab4_1ba.png) + +2. You will use the APEX URL to open APEX + + ![Image alt text](images/lab4_1c.png) + +3. Login using: + - APEX Workspace Name + - APEX Workspace User + - APEX Workspace Password + + ![Image alt text](images/lab4_3a.png) + +4. It will ask you to change the password. You can change the password or you can use the existing password + + ![Image alt text](images/lab4_4pass.png) + +5. Click on "Create Workspace" + + ![Image alt text](images/lab4_4.png) + +6. For Workspace Name type in "Vector" and click Next + + ![Image alt text](images/lab4_5.png) + +7. For "Re-Use existing schema?" set this to Yes + + ![Image alt text](images/lab4_6.png) + +8. For Schema Name type in "ADMIN" and click Next. + **Note:** By doing this you have linked your application with your database schema where your tables reside. + + ![Image alt text](images/lab4_7.png) + +9. For the Identify Administrator section fill in: + - Administrator Username: vectoruser (This will be the user we will log into APEX with) + - Administrator Password: Welcome_1 (or any password you want just make sure to remember it as we will use this to log into APEX with) + - Email: test@test.com (Any email address will work.) + - Click Next + + ![Image alt text](images/lab4_9.png) + +10. Click Create Workspace + + ![Image alt text](images/lab4_10.png) + +12. Click Done + + ![Image alt text](images/lab4_11.png) + +13. Click on admin in the upper right corner and click sign out + + ![Image alt text](images/lab4_13.png) + +14. Click on Return to Sign In Page + + ![Image alt text](images/lab4_14.png) + +15. On the page fill in the following values: + - Workspace: Vector + - Username: vectoruser + - Password: Welcome_1 (or the password you created) + + ![Image alt text](images/lab4_15a.png) + +16. Again you will be asked to create a new password. You can use the same password or change it. + + ![Image alt text](images/lab4_16.png) + +17. You should now be on the main landing page of APEX + + ![Image alt text](images/lab4_17.png) + +## Task 2: Create Application +In this task you will create the application so you can start building pages. + +1. Click on App Builder Icon + ![Image alt text](images/lab4_task2_1.png) + +2. Click on Create a New App + ![Image alt text](images/lab4_task2_2.png) + +3. Name your application. I'm going to use "Vector Image". Next click Create Application + + ![Image alt text](images/lab4_task2_3.png) + +## Task 3: Create Image Gallery Page +In this task you will create the Image Gallery page. This page will display the images that are brought back from your AI Vector Search based on input from the user. + +1. Click on Create Page + + ![Image alt text](images/lab4_task3_1.png) + +2. Next choose Cards + ![Image alt text](images/lab4_20a.png) + +3. On this page: + - Under **Page Definition**: Name: Image Gallery + - Under **Data Source**: Table/View Name: VECTOR_IMAGE + - Click Next + + ![Image alt text](images/lab4_21a.png) + +4. On this page: + - For **Cards Layout** select: **Float** + - Under **Cards Attributes** select: **Title Column** in the URL field from the table + - Click on Create Page + + ![Image alt text](images/lab4_22a.png) + +5. On the left panel under `Page*: Image Gallery`: under the section Body, right click Body and choose "**Create Page Item**". We will use this as a text entry box for searching. + + ![Image alt text](images/lab4_23a.png) + +6. If you click on the newly created Item on the left side of the page, look to the right side of the screen under **Page Item**. You will make the following changes in the Page Item Panel: + - Change the name of the item you just created to P4\_SEARCH\_ITEM. + - Change Submit when Enter pressed to On + + ![Image alt text](images/lab4_25a.png) + +7. In the panel on the left, Drag the P4\_SEARCH\_ITEM up above the Image Gallery page item. This will make it so your search box will be at the top of the page. + + ![Image alt text](images/lab4_26.png) + + +8. Click on the **Image Gallery** page item. Now make the following changes in the **Region** panel on the right: + + - Under **Source**, change the **Type** to **SQL Query**. + + ![Image alt text](images/lab4_28a.png) + + - For the **SQL Query**, paste the following: + + ``` + + select URL, + IMG, + UFORM_DESC, + UFORM_VECTOR, + NLP_DESC, + NLP_VECTOR + from VECTOR_IMAGE + ORDER BY VECTOR_DISTANCE( uform_vector, vector_embedding(minilm12v2 using :P4_SEARCH_ITEM as data), EUCLIDEAN ) + FETCH EXACT FIRST 2 ROWS ONLY + + ``` + + ![Image alt text](images/lab4_29.png) + + - In the **Page Items to Submit** section, click on the menu button on the right and select **P4\_SEARCH\_ITEM**. + + ![Image alt text](images/lab4_30.png) + ![Image alt text](images/lab4_31.png) + +9. Click on the Attributes Tab + + ![Image alt text](images/lab4_32.png) + +10. Make the following changes: + - Scroll down to **Media** + - Change the **Source**: Blob Column + - **Blob Column**: IMG + + ![Image alt text](images/lab4_33.png) + ![Image alt text](images/lab4_34.png) + - Scroll up to **Card** + - Primary Key Column 1: URL + - Click on Save at the top of the page + + ![Image alt text](images/lab4_35.png) + ![Image alt text](images/lab4_36.png) + +11. Right click on the ORDER\_BY in the left panel and select delete. It will have a P2 or another number based on the number your page. + ![Image alt text](images/lab4_37.png) + +12. Click on Save + + ![Image alt text](images/lab4_38.png) + + +13. If you want to see how your page looks click on the run button + + ![Image alt text](images/lab4_39.png) + +14. You will need to login to your application + - Username: vectoruser + - Password: Welcome_1 (Or whatever password you set it to) + + ![Image alt text](images/lab4_40.png) + +15. Try typing in Fruit or Climbing in the search bar + + ![Image alt text](images/lab4_41.png) + ![Image alt text](images/lab4_42.png) + +16. You can close your application page but leave your Application Designer/Builder page open + +## Task 4: Create Image Detail Page +In this task you will create the Image Detail Page that will display information like the descriptions and vectors for the image selected. You will also create a link back to the Image Gallery Page. + +1. If you are not at the application builder home page click on the Application Breadcrumb at the top corner of the page + ![Image alt text](images/lab4_task4_1.png) + +2. You should be on a page that looks like the image below + ![Image alt text](images/lab4_44_.png) + +3. Click on Create Page + ![Image alt text](images/lab4_44.png) + +4. Choose Interactive Report + ![Image alt text](images/lab4_45a.png) + +5. On this page: + - Name: Image Detail + - Table/View Name: VECTOR_IMAGE + - Click Create Page + + ![Image alt text](images/lab4_46a.png) + + +6. On the left panel where you see the section called Body, right click on the word Body and choose "Create Page Item". This will be a variable so that you can pass which image you want to see the detail from the Image Gallery page. + + ![Image alt text](images/lab4_47.png) + +7. If you click on the newly created Item then on the right side of the page you will see the Page Item panel for that item. Make the following changes in the Page Item Panel: + - In **Identification** change **Name** to: P2_URL + ![Image alt text](images/lab4_49a.png) + - Scroll down to the Default section and change: + - Type: SQL Query (return single value) + ![Image alt text](images/lab4_50.png) + - SQL Query: "select min(url) from vector_image" (without the double quotes) + ![Image alt text](images/lab4_51.png) + +8. In the panel on the left, Drag the P2_URL up above the Image Detail page item + + ![Image alt text](images/lab4_52a.png) + +9. Click on the Image Detail in the left panel to pull up its details and change the where clause section paste "URL = :P2_URL" (without the double quotes) + + ![Image alt text](images/lab4_53a.png) + +11. In the Page Items to Submit section click on the menu button on the right and click on P2_URL + + ![Image alt text](images/lab4_54.png) + +12. Back on the left side panel right click on image detail and click on duplicate + ![Image alt text](images/lab4_55a.png) + ![Image alt text](images/lab4_56a.png) + +13. Expand the column list of the top image detail page item and do the following: + - Right click on url and choose comment out + - Right click on img and choose comment out + - Right click on uform_vector and choose comment out + - Right click on nlp_vector and choose comment out + + ![Image alt text](images/lab4_57a.png) + ![Image alt text](images/lab4_58a.png) + ![Image alt text](images/lab4_59a.png) + +14. Expand the columns list of the bottom image detail page item and do the following: + - Right click on url and choose comment out + - Right click on img and choose comment out + - Right click on uform_desc and choose comment out + - Right click on nlp_desc and choose comment out + + ![Image alt text](images/lab4_60a.png) + ![Image alt text](images/lab4_61a.png) + ![Image alt text](images/lab4_62a.png) + +15. Right click on Body in the left panel and click on Create Button + + ![Image alt text](images/lab4_63a.png) + +16. Click on the button on the left and in the Button panel on the right change the following: + - Button Name: Back\_to\_Images + ![Image alt text](images/lab4_65a.png) + - The label should automatically change to Back To Images + - Scroll down to Behavior and make the following changes: + - Action: Redirect to to Page in this Application + ![Image alt text](images/lab4_66a.png) + - Target: Click on Link to bring up the dialog + ![Image alt text](images/lab4_67a.png) + - Click on the menu on the page box + ![Image alt text](images/lab4_68a.png) + - Click on the number next to the Image Gallery. In my case I would click on 2 + ![Image alt text](images/lab4_69a.png) + - Click on Ok + ![Image alt text](images/lab4_70a.png) + + +17. Click on Save on the Page + + ![Image alt text](images/lab4_71.png) + +18. Click on the application breadcrumb at the top left corner of the page + ![Image alt text](images/lab4_72.png) + +## Task 5: Linking Image Gallery to the Image Details +In this task you will link the Image Gallery page to the Image Detail Pages so when you click on an image you will get the details for it. + +1. If you are not at the application builder home page click on the Application Breadcrumb at the top of the page + + ![Image alt text](images/lab4_task5_1.png) + +2. You should be on a page that looks like the image below + ![Image alt text](images/lab4_task5_2.png) + +3. Click on your Image Gallery page + ![Image alt text](images/lab4_74.png) + +4. In the left panel Under Image Gallery right click on Actions and Choose create action + ![Image alt text](images/lab4_76a.png) + +5. In the Action Panel on the right make the following changes + - Identification -> Type: Media + ![Image alt text](images/lab4_77.png) + - Under link Change + - Type: Redirect to Page in this Application + ![Image alt text](images/lab4_78a.png) + + - Click on Target + + ![Image alt text](images/lab4_79a.png) + + - Click on the menu on the Page box which should pop up the list of pages in your application + + ![Image alt text](images/lab4_80a.png) + + - Click on the number of the page for the "Image Detail" page. In my case I would click on the 3 + + ![Image alt text](images/lab4_81.png) + + - In the Set Items section: + - Click on the menu button next to the box for Name. + ![Image alt text](images/lab4_80b.png) + - It should show P2_URL. Click on that to select it + ![Image alt text](images/lab4_82a.png) + - For the Value box, again click on the menu button + ![Image alt text](images/lab4_80b.png) + - Select URL + ![Image alt text](images/lab4_83a.png) + - Click Ok to save the dialog + ![Image alt text](images/lab4_84a.png) + + - Click on the menu on the Link Attributes box and select URL + + ![Image alt text](images/lab4_86a.png) + +6. Click Save on the page + ![Image alt text](images/lab4_87.png) + +## Task 6: Running the Application +1. To run your application do one of the following: + - If you are still on the Image Gallery page you can click on the run button to start your application. + + ![Image alt text](images/lab4_task6_1.png) + + - If you are on the Application Builder home page then click on the Image Gallery page and then click the run button. + + ![Image alt text](images/lab4_89.png) + ![Image alt text](images/lab4_90.png) + +2. If you need to login use: + - Username: vectoruser + - Password: Welcome_1 (or whatever password you set for vectorimage) + + ![Image alt text](images/lab4_91.png) + +3. If you want you can click on the Menu and select Image Gallery to get to the Image Gallery page as well. + + ![Image alt text](images/lab4_92.png) + +4. In your search bar type in Fruit or Surfing or whatever you want to search on + ![Image alt text](images/lab4_93.png) + +5. Click on an image to go to your detail page + ![Image alt text](images/lab4_94.png) + +6. On the details page you can see both descriptions and what the vectors for the descriptions are. At the bottom is the button to go back to the Image Gallery page. + + ![Image alt text](images/lab4_95.png) + ![Image alt text](images/lab4_96.png) + +Congradulations, you have built a AI Vector Search enabled application using images! + +## Learn More + +* [Oracle AI Vector Search Users Guide](https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/whats-new-oracle-ai-vector-search.html) +* [AI Vector Search Blog](https://blogs.oracle.com/database/post/oracle-announces-general-availability-of-ai-vector-search-in-oracle-database-23ai) +* [Oracle APEX](https://apex.oracle.com) + +## Acknowledgements +* **Author** - David Start, Product Management +* **Contributors** - David Start, Product Management, Francis Regalado, Product Management +* **Last Updated By/Date** - David Start, Sept 2024 diff --git a/ai-vector-image/apex/images/lab4_1.png b/ai-vector-image/apex/images/lab4_1.png new file mode 100644 index 000000000..35492c91e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_1.png differ diff --git a/ai-vector-image/apex/images/lab4_10.png b/ai-vector-image/apex/images/lab4_10.png new file mode 100644 index 000000000..fc79e0714 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_10.png differ diff --git a/ai-vector-image/apex/images/lab4_11.png b/ai-vector-image/apex/images/lab4_11.png new file mode 100644 index 000000000..cddce42bd Binary files /dev/null and b/ai-vector-image/apex/images/lab4_11.png differ diff --git a/ai-vector-image/apex/images/lab4_12.png b/ai-vector-image/apex/images/lab4_12.png new file mode 100644 index 000000000..b339509f0 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_12.png differ diff --git a/ai-vector-image/apex/images/lab4_13.png b/ai-vector-image/apex/images/lab4_13.png new file mode 100644 index 000000000..46f536a6b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_13.png differ diff --git a/ai-vector-image/apex/images/lab4_14.png b/ai-vector-image/apex/images/lab4_14.png new file mode 100644 index 000000000..015fa27ba Binary files /dev/null and b/ai-vector-image/apex/images/lab4_14.png differ diff --git a/ai-vector-image/apex/images/lab4_15.png b/ai-vector-image/apex/images/lab4_15.png new file mode 100644 index 000000000..116610360 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_15.png differ diff --git a/ai-vector-image/apex/images/lab4_15a.png b/ai-vector-image/apex/images/lab4_15a.png new file mode 100644 index 000000000..5502f62fe Binary files /dev/null and b/ai-vector-image/apex/images/lab4_15a.png differ diff --git a/ai-vector-image/apex/images/lab4_16.png b/ai-vector-image/apex/images/lab4_16.png new file mode 100644 index 000000000..41dcaa50b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_16.png differ diff --git a/ai-vector-image/apex/images/lab4_17.png b/ai-vector-image/apex/images/lab4_17.png new file mode 100644 index 000000000..e70bdd66f Binary files /dev/null and b/ai-vector-image/apex/images/lab4_17.png differ diff --git a/ai-vector-image/apex/images/lab4_1a.png b/ai-vector-image/apex/images/lab4_1a.png new file mode 100644 index 000000000..1e4873a1d Binary files /dev/null and b/ai-vector-image/apex/images/lab4_1a.png differ diff --git a/ai-vector-image/apex/images/lab4_1a.png~ b/ai-vector-image/apex/images/lab4_1a.png~ new file mode 100644 index 000000000..e8feb6dfc Binary files /dev/null and b/ai-vector-image/apex/images/lab4_1a.png~ differ diff --git a/ai-vector-image/apex/images/lab4_1b.png b/ai-vector-image/apex/images/lab4_1b.png new file mode 100644 index 000000000..e29a67e3d Binary files /dev/null and b/ai-vector-image/apex/images/lab4_1b.png differ diff --git a/ai-vector-image/apex/images/lab4_1ba.png b/ai-vector-image/apex/images/lab4_1ba.png new file mode 100644 index 000000000..c78106f48 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_1ba.png differ diff --git a/ai-vector-image/apex/images/lab4_1c.png b/ai-vector-image/apex/images/lab4_1c.png new file mode 100644 index 000000000..dde8f9691 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_1c.png differ diff --git a/ai-vector-image/apex/images/lab4_2.png b/ai-vector-image/apex/images/lab4_2.png new file mode 100644 index 000000000..9971b62e8 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_2.png differ diff --git a/ai-vector-image/apex/images/lab4_20.png b/ai-vector-image/apex/images/lab4_20.png new file mode 100644 index 000000000..c86755986 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_20.png differ diff --git a/ai-vector-image/apex/images/lab4_20a.png b/ai-vector-image/apex/images/lab4_20a.png new file mode 100644 index 000000000..4e8b7ce59 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_20a.png differ diff --git a/ai-vector-image/apex/images/lab4_21.png b/ai-vector-image/apex/images/lab4_21.png new file mode 100644 index 000000000..9b5b5c03b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_21.png differ diff --git a/ai-vector-image/apex/images/lab4_21a.png b/ai-vector-image/apex/images/lab4_21a.png new file mode 100644 index 000000000..f8b9c08ba Binary files /dev/null and b/ai-vector-image/apex/images/lab4_21a.png differ diff --git a/ai-vector-image/apex/images/lab4_22.png b/ai-vector-image/apex/images/lab4_22.png new file mode 100644 index 000000000..c89c6da7d Binary files /dev/null and b/ai-vector-image/apex/images/lab4_22.png differ diff --git a/ai-vector-image/apex/images/lab4_22a.png b/ai-vector-image/apex/images/lab4_22a.png new file mode 100644 index 000000000..fca3035bd Binary files /dev/null and b/ai-vector-image/apex/images/lab4_22a.png differ diff --git a/ai-vector-image/apex/images/lab4_23.png b/ai-vector-image/apex/images/lab4_23.png new file mode 100644 index 000000000..7f23a6352 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_23.png differ diff --git a/ai-vector-image/apex/images/lab4_23a.png b/ai-vector-image/apex/images/lab4_23a.png new file mode 100644 index 000000000..459fccfa0 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_23a.png differ diff --git a/ai-vector-image/apex/images/lab4_24.png b/ai-vector-image/apex/images/lab4_24.png new file mode 100644 index 000000000..651cce484 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_24.png differ diff --git a/ai-vector-image/apex/images/lab4_25.png b/ai-vector-image/apex/images/lab4_25.png new file mode 100644 index 000000000..219423aac Binary files /dev/null and b/ai-vector-image/apex/images/lab4_25.png differ diff --git a/ai-vector-image/apex/images/lab4_25a.png b/ai-vector-image/apex/images/lab4_25a.png new file mode 100644 index 000000000..b18752ebb Binary files /dev/null and b/ai-vector-image/apex/images/lab4_25a.png differ diff --git a/ai-vector-image/apex/images/lab4_26.png b/ai-vector-image/apex/images/lab4_26.png new file mode 100644 index 000000000..6fb83ec74 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_26.png differ diff --git a/ai-vector-image/apex/images/lab4_27.png b/ai-vector-image/apex/images/lab4_27.png new file mode 100644 index 000000000..4e76798d3 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_27.png differ diff --git a/ai-vector-image/apex/images/lab4_28.png b/ai-vector-image/apex/images/lab4_28.png new file mode 100644 index 000000000..a9e7045c2 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_28.png differ diff --git a/ai-vector-image/apex/images/lab4_28a.png b/ai-vector-image/apex/images/lab4_28a.png new file mode 100644 index 000000000..1765d7191 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_28a.png differ diff --git a/ai-vector-image/apex/images/lab4_29.png b/ai-vector-image/apex/images/lab4_29.png new file mode 100644 index 000000000..695dac204 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_29.png differ diff --git a/ai-vector-image/apex/images/lab4_3.png b/ai-vector-image/apex/images/lab4_3.png new file mode 100644 index 000000000..5f11a556f Binary files /dev/null and b/ai-vector-image/apex/images/lab4_3.png differ diff --git a/ai-vector-image/apex/images/lab4_30.png b/ai-vector-image/apex/images/lab4_30.png new file mode 100644 index 000000000..1bdb2b704 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_30.png differ diff --git a/ai-vector-image/apex/images/lab4_31.png b/ai-vector-image/apex/images/lab4_31.png new file mode 100644 index 000000000..98addd349 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_31.png differ diff --git a/ai-vector-image/apex/images/lab4_32.png b/ai-vector-image/apex/images/lab4_32.png new file mode 100644 index 000000000..f29864c8e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_32.png differ diff --git a/ai-vector-image/apex/images/lab4_33.png b/ai-vector-image/apex/images/lab4_33.png new file mode 100644 index 000000000..882d7d708 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_33.png differ diff --git a/ai-vector-image/apex/images/lab4_34.png b/ai-vector-image/apex/images/lab4_34.png new file mode 100644 index 000000000..32714b832 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_34.png differ diff --git a/ai-vector-image/apex/images/lab4_35.png b/ai-vector-image/apex/images/lab4_35.png new file mode 100644 index 000000000..169ac7d1b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_35.png differ diff --git a/ai-vector-image/apex/images/lab4_36.png b/ai-vector-image/apex/images/lab4_36.png new file mode 100644 index 000000000..e84620378 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_36.png differ diff --git a/ai-vector-image/apex/images/lab4_37.png b/ai-vector-image/apex/images/lab4_37.png new file mode 100644 index 000000000..03a8c351e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_37.png differ diff --git a/ai-vector-image/apex/images/lab4_38.png b/ai-vector-image/apex/images/lab4_38.png new file mode 100644 index 000000000..c770e55ad Binary files /dev/null and b/ai-vector-image/apex/images/lab4_38.png differ diff --git a/ai-vector-image/apex/images/lab4_39.png b/ai-vector-image/apex/images/lab4_39.png new file mode 100644 index 000000000..4dfc44d00 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_39.png differ diff --git a/ai-vector-image/apex/images/lab4_3a.png b/ai-vector-image/apex/images/lab4_3a.png new file mode 100644 index 000000000..e303e2fa7 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_3a.png differ diff --git a/ai-vector-image/apex/images/lab4_4.png b/ai-vector-image/apex/images/lab4_4.png new file mode 100644 index 000000000..40d584a9c Binary files /dev/null and b/ai-vector-image/apex/images/lab4_4.png differ diff --git a/ai-vector-image/apex/images/lab4_40.png b/ai-vector-image/apex/images/lab4_40.png new file mode 100644 index 000000000..d49d86ce3 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_40.png differ diff --git a/ai-vector-image/apex/images/lab4_41.png b/ai-vector-image/apex/images/lab4_41.png new file mode 100644 index 000000000..5ddbcaa94 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_41.png differ diff --git a/ai-vector-image/apex/images/lab4_42.png b/ai-vector-image/apex/images/lab4_42.png new file mode 100644 index 000000000..ac0675b9e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_42.png differ diff --git a/ai-vector-image/apex/images/lab4_44.png b/ai-vector-image/apex/images/lab4_44.png new file mode 100644 index 000000000..cfd8be182 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_44.png differ diff --git a/ai-vector-image/apex/images/lab4_44_.png b/ai-vector-image/apex/images/lab4_44_.png new file mode 100644 index 000000000..8e102b51e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_44_.png differ diff --git a/ai-vector-image/apex/images/lab4_45.png b/ai-vector-image/apex/images/lab4_45.png new file mode 100644 index 000000000..932510dc3 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_45.png differ diff --git a/ai-vector-image/apex/images/lab4_45a.png b/ai-vector-image/apex/images/lab4_45a.png new file mode 100644 index 000000000..0e57fc9f2 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_45a.png differ diff --git a/ai-vector-image/apex/images/lab4_46.png b/ai-vector-image/apex/images/lab4_46.png new file mode 100644 index 000000000..58767ed91 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_46.png differ diff --git a/ai-vector-image/apex/images/lab4_46a.png b/ai-vector-image/apex/images/lab4_46a.png new file mode 100644 index 000000000..ae05f8e27 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_46a.png differ diff --git a/ai-vector-image/apex/images/lab4_47.png b/ai-vector-image/apex/images/lab4_47.png new file mode 100644 index 000000000..fdc642dfc Binary files /dev/null and b/ai-vector-image/apex/images/lab4_47.png differ diff --git a/ai-vector-image/apex/images/lab4_48.png b/ai-vector-image/apex/images/lab4_48.png new file mode 100644 index 000000000..c946b5832 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_48.png differ diff --git a/ai-vector-image/apex/images/lab4_49.png b/ai-vector-image/apex/images/lab4_49.png new file mode 100644 index 000000000..1ca04260e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_49.png differ diff --git a/ai-vector-image/apex/images/lab4_49a.png b/ai-vector-image/apex/images/lab4_49a.png new file mode 100644 index 000000000..a0baa9ee5 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_49a.png differ diff --git a/ai-vector-image/apex/images/lab4_4pass.png b/ai-vector-image/apex/images/lab4_4pass.png new file mode 100644 index 000000000..231745f8a Binary files /dev/null and b/ai-vector-image/apex/images/lab4_4pass.png differ diff --git a/ai-vector-image/apex/images/lab4_5.png b/ai-vector-image/apex/images/lab4_5.png new file mode 100644 index 000000000..d12448134 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_5.png differ diff --git a/ai-vector-image/apex/images/lab4_50.png b/ai-vector-image/apex/images/lab4_50.png new file mode 100644 index 000000000..50bb056aa Binary files /dev/null and b/ai-vector-image/apex/images/lab4_50.png differ diff --git a/ai-vector-image/apex/images/lab4_51.png b/ai-vector-image/apex/images/lab4_51.png new file mode 100644 index 000000000..d522040e0 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_51.png differ diff --git a/ai-vector-image/apex/images/lab4_52.png b/ai-vector-image/apex/images/lab4_52.png new file mode 100644 index 000000000..59f933a97 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_52.png differ diff --git a/ai-vector-image/apex/images/lab4_52a.png b/ai-vector-image/apex/images/lab4_52a.png new file mode 100644 index 000000000..dc396ab49 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_52a.png differ diff --git a/ai-vector-image/apex/images/lab4_53.png b/ai-vector-image/apex/images/lab4_53.png new file mode 100644 index 000000000..ef155436b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_53.png differ diff --git a/ai-vector-image/apex/images/lab4_53a.png b/ai-vector-image/apex/images/lab4_53a.png new file mode 100644 index 000000000..cbb82d9db Binary files /dev/null and b/ai-vector-image/apex/images/lab4_53a.png differ diff --git a/ai-vector-image/apex/images/lab4_54.png b/ai-vector-image/apex/images/lab4_54.png new file mode 100644 index 000000000..72b8ebc98 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_54.png differ diff --git a/ai-vector-image/apex/images/lab4_55.png b/ai-vector-image/apex/images/lab4_55.png new file mode 100644 index 000000000..9d48d450e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_55.png differ diff --git a/ai-vector-image/apex/images/lab4_55a.png b/ai-vector-image/apex/images/lab4_55a.png new file mode 100644 index 000000000..e8d266262 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_55a.png differ diff --git a/ai-vector-image/apex/images/lab4_56.png b/ai-vector-image/apex/images/lab4_56.png new file mode 100644 index 000000000..fed44f76f Binary files /dev/null and b/ai-vector-image/apex/images/lab4_56.png differ diff --git a/ai-vector-image/apex/images/lab4_56a.png b/ai-vector-image/apex/images/lab4_56a.png new file mode 100644 index 000000000..2f65990f9 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_56a.png differ diff --git a/ai-vector-image/apex/images/lab4_57.png b/ai-vector-image/apex/images/lab4_57.png new file mode 100644 index 000000000..83dc0d89b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_57.png differ diff --git a/ai-vector-image/apex/images/lab4_57a.png b/ai-vector-image/apex/images/lab4_57a.png new file mode 100644 index 000000000..70d9a384e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_57a.png differ diff --git a/ai-vector-image/apex/images/lab4_58.png b/ai-vector-image/apex/images/lab4_58.png new file mode 100644 index 000000000..b5b790ab1 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_58.png differ diff --git a/ai-vector-image/apex/images/lab4_58a.png b/ai-vector-image/apex/images/lab4_58a.png new file mode 100644 index 000000000..44eb55a34 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_58a.png differ diff --git a/ai-vector-image/apex/images/lab4_59.png b/ai-vector-image/apex/images/lab4_59.png new file mode 100644 index 000000000..2ec1e495d Binary files /dev/null and b/ai-vector-image/apex/images/lab4_59.png differ diff --git a/ai-vector-image/apex/images/lab4_59a.png b/ai-vector-image/apex/images/lab4_59a.png new file mode 100644 index 000000000..d72b4b9af Binary files /dev/null and b/ai-vector-image/apex/images/lab4_59a.png differ diff --git a/ai-vector-image/apex/images/lab4_6.png b/ai-vector-image/apex/images/lab4_6.png new file mode 100644 index 000000000..8f0bf6bad Binary files /dev/null and b/ai-vector-image/apex/images/lab4_6.png differ diff --git a/ai-vector-image/apex/images/lab4_60.png b/ai-vector-image/apex/images/lab4_60.png new file mode 100644 index 000000000..46abc2f5a Binary files /dev/null and b/ai-vector-image/apex/images/lab4_60.png differ diff --git a/ai-vector-image/apex/images/lab4_60a.png b/ai-vector-image/apex/images/lab4_60a.png new file mode 100644 index 000000000..398865611 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_60a.png differ diff --git a/ai-vector-image/apex/images/lab4_61.png b/ai-vector-image/apex/images/lab4_61.png new file mode 100644 index 000000000..9465d23e2 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_61.png differ diff --git a/ai-vector-image/apex/images/lab4_61a.png b/ai-vector-image/apex/images/lab4_61a.png new file mode 100644 index 000000000..6b406aec6 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_61a.png differ diff --git a/ai-vector-image/apex/images/lab4_62.png b/ai-vector-image/apex/images/lab4_62.png new file mode 100644 index 000000000..7afbea519 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_62.png differ diff --git a/ai-vector-image/apex/images/lab4_62a.png b/ai-vector-image/apex/images/lab4_62a.png new file mode 100644 index 000000000..1980462c0 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_62a.png differ diff --git a/ai-vector-image/apex/images/lab4_63.png b/ai-vector-image/apex/images/lab4_63.png new file mode 100644 index 000000000..4f71cbb06 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_63.png differ diff --git a/ai-vector-image/apex/images/lab4_63a.png b/ai-vector-image/apex/images/lab4_63a.png new file mode 100644 index 000000000..2fcbc2846 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_63a.png differ diff --git a/ai-vector-image/apex/images/lab4_64.png b/ai-vector-image/apex/images/lab4_64.png new file mode 100644 index 000000000..459684804 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_64.png differ diff --git a/ai-vector-image/apex/images/lab4_65.png b/ai-vector-image/apex/images/lab4_65.png new file mode 100644 index 000000000..d16831655 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_65.png differ diff --git a/ai-vector-image/apex/images/lab4_65a.png b/ai-vector-image/apex/images/lab4_65a.png new file mode 100644 index 000000000..0aa45b00d Binary files /dev/null and b/ai-vector-image/apex/images/lab4_65a.png differ diff --git a/ai-vector-image/apex/images/lab4_66.png b/ai-vector-image/apex/images/lab4_66.png new file mode 100644 index 000000000..be25a70a0 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_66.png differ diff --git a/ai-vector-image/apex/images/lab4_66a.png b/ai-vector-image/apex/images/lab4_66a.png new file mode 100644 index 000000000..497b5fd24 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_66a.png differ diff --git a/ai-vector-image/apex/images/lab4_67.png b/ai-vector-image/apex/images/lab4_67.png new file mode 100644 index 000000000..53c09c30e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_67.png differ diff --git a/ai-vector-image/apex/images/lab4_67a.png b/ai-vector-image/apex/images/lab4_67a.png new file mode 100644 index 000000000..e37807f81 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_67a.png differ diff --git a/ai-vector-image/apex/images/lab4_68.png b/ai-vector-image/apex/images/lab4_68.png new file mode 100644 index 000000000..fe3899169 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_68.png differ diff --git a/ai-vector-image/apex/images/lab4_68a.png b/ai-vector-image/apex/images/lab4_68a.png new file mode 100644 index 000000000..420b7c546 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_68a.png differ diff --git a/ai-vector-image/apex/images/lab4_69.png b/ai-vector-image/apex/images/lab4_69.png new file mode 100644 index 000000000..aa67c9b3b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_69.png differ diff --git a/ai-vector-image/apex/images/lab4_69a.png b/ai-vector-image/apex/images/lab4_69a.png new file mode 100644 index 000000000..f11c654b9 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_69a.png differ diff --git a/ai-vector-image/apex/images/lab4_7.png b/ai-vector-image/apex/images/lab4_7.png new file mode 100644 index 000000000..a779061de Binary files /dev/null and b/ai-vector-image/apex/images/lab4_7.png differ diff --git a/ai-vector-image/apex/images/lab4_70.png b/ai-vector-image/apex/images/lab4_70.png new file mode 100644 index 000000000..98e9283d2 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_70.png differ diff --git a/ai-vector-image/apex/images/lab4_70a.png b/ai-vector-image/apex/images/lab4_70a.png new file mode 100644 index 000000000..32dc21833 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_70a.png differ diff --git a/ai-vector-image/apex/images/lab4_71.png b/ai-vector-image/apex/images/lab4_71.png new file mode 100644 index 000000000..6d2f368de Binary files /dev/null and b/ai-vector-image/apex/images/lab4_71.png differ diff --git a/ai-vector-image/apex/images/lab4_72.png b/ai-vector-image/apex/images/lab4_72.png new file mode 100644 index 000000000..139a32c3e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_72.png differ diff --git a/ai-vector-image/apex/images/lab4_74.png b/ai-vector-image/apex/images/lab4_74.png new file mode 100644 index 000000000..b0f0548da Binary files /dev/null and b/ai-vector-image/apex/images/lab4_74.png differ diff --git a/ai-vector-image/apex/images/lab4_75.png b/ai-vector-image/apex/images/lab4_75.png new file mode 100644 index 000000000..ad6a82115 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_75.png differ diff --git a/ai-vector-image/apex/images/lab4_76.png b/ai-vector-image/apex/images/lab4_76.png new file mode 100644 index 000000000..0726ee8d8 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_76.png differ diff --git a/ai-vector-image/apex/images/lab4_76a.png b/ai-vector-image/apex/images/lab4_76a.png new file mode 100644 index 000000000..16648a404 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_76a.png differ diff --git a/ai-vector-image/apex/images/lab4_77.png b/ai-vector-image/apex/images/lab4_77.png new file mode 100644 index 000000000..a77331928 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_77.png differ diff --git a/ai-vector-image/apex/images/lab4_78.png b/ai-vector-image/apex/images/lab4_78.png new file mode 100644 index 000000000..1b2430360 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_78.png differ diff --git a/ai-vector-image/apex/images/lab4_78a.png b/ai-vector-image/apex/images/lab4_78a.png new file mode 100644 index 000000000..756f4bcc5 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_78a.png differ diff --git a/ai-vector-image/apex/images/lab4_79.png b/ai-vector-image/apex/images/lab4_79.png new file mode 100644 index 000000000..61c66bdb4 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_79.png differ diff --git a/ai-vector-image/apex/images/lab4_79a.png b/ai-vector-image/apex/images/lab4_79a.png new file mode 100644 index 000000000..72ff94481 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_79a.png differ diff --git a/ai-vector-image/apex/images/lab4_8.png b/ai-vector-image/apex/images/lab4_8.png new file mode 100644 index 000000000..4183b43e6 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_8.png differ diff --git a/ai-vector-image/apex/images/lab4_80.png b/ai-vector-image/apex/images/lab4_80.png new file mode 100644 index 000000000..e065664bc Binary files /dev/null and b/ai-vector-image/apex/images/lab4_80.png differ diff --git a/ai-vector-image/apex/images/lab4_80a.png b/ai-vector-image/apex/images/lab4_80a.png new file mode 100644 index 000000000..9f3fd166f Binary files /dev/null and b/ai-vector-image/apex/images/lab4_80a.png differ diff --git a/ai-vector-image/apex/images/lab4_80b.png b/ai-vector-image/apex/images/lab4_80b.png new file mode 100644 index 000000000..5ab01dab1 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_80b.png differ diff --git a/ai-vector-image/apex/images/lab4_81.png b/ai-vector-image/apex/images/lab4_81.png new file mode 100644 index 000000000..8368ce75f Binary files /dev/null and b/ai-vector-image/apex/images/lab4_81.png differ diff --git a/ai-vector-image/apex/images/lab4_82.png b/ai-vector-image/apex/images/lab4_82.png new file mode 100644 index 000000000..a574e350b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_82.png differ diff --git a/ai-vector-image/apex/images/lab4_82a.png b/ai-vector-image/apex/images/lab4_82a.png new file mode 100644 index 000000000..3248f9b7d Binary files /dev/null and b/ai-vector-image/apex/images/lab4_82a.png differ diff --git a/ai-vector-image/apex/images/lab4_83.png b/ai-vector-image/apex/images/lab4_83.png new file mode 100644 index 000000000..41313a74b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_83.png differ diff --git a/ai-vector-image/apex/images/lab4_83a.png b/ai-vector-image/apex/images/lab4_83a.png new file mode 100644 index 000000000..43d77d9dc Binary files /dev/null and b/ai-vector-image/apex/images/lab4_83a.png differ diff --git a/ai-vector-image/apex/images/lab4_84.png b/ai-vector-image/apex/images/lab4_84.png new file mode 100644 index 000000000..090969718 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_84.png differ diff --git a/ai-vector-image/apex/images/lab4_84a.png b/ai-vector-image/apex/images/lab4_84a.png new file mode 100644 index 000000000..b87bc1069 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_84a.png differ diff --git a/ai-vector-image/apex/images/lab4_85.png b/ai-vector-image/apex/images/lab4_85.png new file mode 100644 index 000000000..e080ae497 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_85.png differ diff --git a/ai-vector-image/apex/images/lab4_86.png b/ai-vector-image/apex/images/lab4_86.png new file mode 100644 index 000000000..4314db60d Binary files /dev/null and b/ai-vector-image/apex/images/lab4_86.png differ diff --git a/ai-vector-image/apex/images/lab4_86a.png b/ai-vector-image/apex/images/lab4_86a.png new file mode 100644 index 000000000..8f1e54b64 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_86a.png differ diff --git a/ai-vector-image/apex/images/lab4_87.png b/ai-vector-image/apex/images/lab4_87.png new file mode 100644 index 000000000..8a67d8725 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_87.png differ diff --git a/ai-vector-image/apex/images/lab4_89.png b/ai-vector-image/apex/images/lab4_89.png new file mode 100644 index 000000000..39cfdf7b7 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_89.png differ diff --git a/ai-vector-image/apex/images/lab4_9.png b/ai-vector-image/apex/images/lab4_9.png new file mode 100644 index 000000000..93965e1b1 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_9.png differ diff --git a/ai-vector-image/apex/images/lab4_90.png b/ai-vector-image/apex/images/lab4_90.png new file mode 100644 index 000000000..bbd2064ad Binary files /dev/null and b/ai-vector-image/apex/images/lab4_90.png differ diff --git a/ai-vector-image/apex/images/lab4_91.png b/ai-vector-image/apex/images/lab4_91.png new file mode 100644 index 000000000..05c838d23 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_91.png differ diff --git a/ai-vector-image/apex/images/lab4_92.png b/ai-vector-image/apex/images/lab4_92.png new file mode 100644 index 000000000..a5c3aef51 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_92.png differ diff --git a/ai-vector-image/apex/images/lab4_93.png b/ai-vector-image/apex/images/lab4_93.png new file mode 100644 index 000000000..2a25e392b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_93.png differ diff --git a/ai-vector-image/apex/images/lab4_94.png b/ai-vector-image/apex/images/lab4_94.png new file mode 100644 index 000000000..3eca51608 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_94.png differ diff --git a/ai-vector-image/apex/images/lab4_95.png b/ai-vector-image/apex/images/lab4_95.png new file mode 100644 index 000000000..080c085b6 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_95.png differ diff --git a/ai-vector-image/apex/images/lab4_96.png b/ai-vector-image/apex/images/lab4_96.png new file mode 100644 index 000000000..fa03e3372 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_96.png differ diff --git a/ai-vector-image/apex/images/lab4_image_detail.png b/ai-vector-image/apex/images/lab4_image_detail.png new file mode 100644 index 000000000..08e277e1b Binary files /dev/null and b/ai-vector-image/apex/images/lab4_image_detail.png differ diff --git a/ai-vector-image/apex/images/lab4_task2_1.png b/ai-vector-image/apex/images/lab4_task2_1.png new file mode 100644 index 000000000..33d19f8a2 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task2_1.png differ diff --git a/ai-vector-image/apex/images/lab4_task2_2.png b/ai-vector-image/apex/images/lab4_task2_2.png new file mode 100644 index 000000000..261e0862c Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task2_2.png differ diff --git a/ai-vector-image/apex/images/lab4_task2_3.png b/ai-vector-image/apex/images/lab4_task2_3.png new file mode 100644 index 000000000..f09b8dc5c Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task2_3.png differ diff --git a/ai-vector-image/apex/images/lab4_task3_1.png b/ai-vector-image/apex/images/lab4_task3_1.png new file mode 100644 index 000000000..59d64f3f2 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task3_1.png differ diff --git a/ai-vector-image/apex/images/lab4_task4_1.png b/ai-vector-image/apex/images/lab4_task4_1.png new file mode 100644 index 000000000..376f87e4a Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task4_1.png differ diff --git a/ai-vector-image/apex/images/lab4_task5_1.png b/ai-vector-image/apex/images/lab4_task5_1.png new file mode 100644 index 000000000..139a32c3e Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task5_1.png differ diff --git a/ai-vector-image/apex/images/lab4_task5_2.png b/ai-vector-image/apex/images/lab4_task5_2.png new file mode 100644 index 000000000..dc69e6100 Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task5_2.png differ diff --git a/ai-vector-image/apex/images/lab4_task6_1.png b/ai-vector-image/apex/images/lab4_task6_1.png new file mode 100644 index 000000000..7bab2bd8f Binary files /dev/null and b/ai-vector-image/apex/images/lab4_task6_1.png differ diff --git a/ai-vector-image/apex/images/sample1.png b/ai-vector-image/apex/images/sample1.png new file mode 100644 index 000000000..2d9ad4738 Binary files /dev/null and b/ai-vector-image/apex/images/sample1.png differ diff --git a/ai-vector-image/apex/images/sample2.png b/ai-vector-image/apex/images/sample2.png new file mode 100644 index 000000000..145c9d39c Binary files /dev/null and b/ai-vector-image/apex/images/sample2.png differ diff --git a/ai-vector-image/generate/generate.md b/ai-vector-image/generate/generate.md new file mode 100644 index 000000000..7a82d2fbf --- /dev/null +++ b/ai-vector-image/generate/generate.md @@ -0,0 +1,64 @@ +# Getting Familiar with Models and Notebooks + +## Introduction + +This lab will walk you through working with models, preprocessors and general python notebooks. By the end you will convert an image to text and should be familiar with the steps to run the next set of labs. + +Estimated Lab Time: 15 minutes + +### Objectives + +In this lab, you will: +* Setup the necessary libraries +* Load various preprocessors and models +* Run the steps to convert an image to text + +### Prerequisites + +This lab assumes you have: +* All previous labs successfully completed + + +## Task 1: Open Notebook + +This task will have you login to the Jupyter Notebook environment and run the specific notebook for this lab. + +1. **If you are already logged into the Jupyter Notebook environment skip to step 5 otherwise** open the "View Login Info" section of your workshop. + + ![Image alt text](images/lab4_1ba.png) + +2. Copy the Jupyter Notebook Password and Click the Jupyter Notebook URL + + ![Image alt text](images/lab4_1a.png) + +3. Paste the Jupyter Notebook Password you copied in the previous step into the Notebook + ![Image alt text](images/lab1_3.png) + +4. You should now be on the Jupyter Notebook landing screen. Open the folder named `vector lab` on the left hand side of the screen located in the file explorer + ![Image alt text](images/lab1_4.png) + + +5. In the left File Explorer panel open the vector\_lab folder and open the **1\_generate\_lab.ipynb** notebook + ![Image alt text](images/lab1_5.png) + ![Image alt text](images/lab1_6.png) + +6. Follow the steps in the notebook. A few things to remember: + - There are markdown blocks and code blocks mixed together + - The run button can be used on both code and markdown blocks (markdown just advances you to the next block) + - When you run a code block there are [ ] next to the code block. If it changes to a [\*] that means it running. If it has a number like [1] then its done running. + - Passwords and additional information you may need will be found in the "View Login Info" where the Jupyter Notebook link was + +**Note: The notebooks can be downloaded in the learn more section for your viewing** + +Once you have completed the steps in the notebook please return to the workshop so you can continue to the next lab. + +## Learn More + +* [Oracle AI Vector Search Users Guide](https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/whats-new-oracle-ai-vector-search.html) +* [AI Vector Search Blog](https://blogs.oracle.com/database/post/oracle-announces-general-availability-of-ai-vector-search-in-oracle-database-23ai) +* [Workshop Notebook Download](https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/labfiles/ocw_image_vector_lab.zip) + +## Acknowledgements +* **Author** - David Start, Product Management +* **Contributors** - David Start, Product Management, Francis Regalado, Product Management +* **Last Updated By/Date** - David Start, Sept 2024 diff --git a/ai-vector-image/generate/images/lab1_1.png b/ai-vector-image/generate/images/lab1_1.png new file mode 100644 index 000000000..0ddf5cb5f Binary files /dev/null and b/ai-vector-image/generate/images/lab1_1.png differ diff --git a/ai-vector-image/generate/images/lab1_2.png b/ai-vector-image/generate/images/lab1_2.png new file mode 100644 index 000000000..35492c91e Binary files /dev/null and b/ai-vector-image/generate/images/lab1_2.png differ diff --git a/ai-vector-image/generate/images/lab1_3.png b/ai-vector-image/generate/images/lab1_3.png new file mode 100644 index 000000000..0675255d8 Binary files /dev/null and b/ai-vector-image/generate/images/lab1_3.png differ diff --git a/ai-vector-image/generate/images/lab1_4.png b/ai-vector-image/generate/images/lab1_4.png new file mode 100644 index 000000000..7dea770b5 Binary files /dev/null and b/ai-vector-image/generate/images/lab1_4.png differ diff --git a/ai-vector-image/generate/images/lab1_5.png b/ai-vector-image/generate/images/lab1_5.png new file mode 100644 index 000000000..845ae8947 Binary files /dev/null and b/ai-vector-image/generate/images/lab1_5.png differ diff --git a/ai-vector-image/generate/images/lab1_6.png b/ai-vector-image/generate/images/lab1_6.png new file mode 100644 index 000000000..ccf67d5b4 Binary files /dev/null and b/ai-vector-image/generate/images/lab1_6.png differ diff --git a/ai-vector-image/generate/images/lab1_7.png b/ai-vector-image/generate/images/lab1_7.png new file mode 100644 index 000000000..361dd257d Binary files /dev/null and b/ai-vector-image/generate/images/lab1_7.png differ diff --git a/ai-vector-image/generate/images/lab4_1a.png b/ai-vector-image/generate/images/lab4_1a.png new file mode 100644 index 000000000..1e4873a1d Binary files /dev/null and b/ai-vector-image/generate/images/lab4_1a.png differ diff --git a/ai-vector-image/generate/images/lab4_1ba.png b/ai-vector-image/generate/images/lab4_1ba.png new file mode 100644 index 000000000..c78106f48 Binary files /dev/null and b/ai-vector-image/generate/images/lab4_1ba.png differ diff --git a/ai-vector-image/generate/images/sample1.png b/ai-vector-image/generate/images/sample1.png new file mode 100644 index 000000000..2d9ad4738 Binary files /dev/null and b/ai-vector-image/generate/images/sample1.png differ diff --git a/ai-vector-image/generate/images/sample2.png b/ai-vector-image/generate/images/sample2.png new file mode 100644 index 000000000..145c9d39c Binary files /dev/null and b/ai-vector-image/generate/images/sample2.png differ diff --git a/ai-vector-image/introduction/images/diagram.png b/ai-vector-image/introduction/images/diagram.png new file mode 100644 index 000000000..de6bf0eb5 Binary files /dev/null and b/ai-vector-image/introduction/images/diagram.png differ diff --git a/ai-vector-image/introduction/images/diagram1.png b/ai-vector-image/introduction/images/diagram1.png new file mode 100644 index 000000000..864d5168f Binary files /dev/null and b/ai-vector-image/introduction/images/diagram1.png differ diff --git a/ai-vector-image/introduction/introduction.md b/ai-vector-image/introduction/introduction.md new file mode 100644 index 000000000..2591ed3c2 --- /dev/null +++ b/ai-vector-image/introduction/introduction.md @@ -0,0 +1,48 @@ +# Introduction + +## About this Workshop + +Large Language Models (LLMs) have transformed artificial intelligence by enabling computers to understand and generate human-like text. These models rely on vectors—mathematical representations of words, phrases, and sentences—to process and create language. Vectors allow LLMs to capture the meaning of words and the relationships between them, making it possible for the models to perform tasks like text generation, translation, and question-answering with impressive accuracy. However, as we push LLMs to handle more complex tasks, such as integrating text with other types of data like images, new challenges arise. Combining these different kinds of vectors—those representing text and those representing images—requires advanced techniques to ensure the model can effectively understand and generate multimodal information. + +This workshop outlines a two-step approach to tackle a problem by leveraging two different models. The first model generates descriptions for images, while the second model creates vectors for these textual descriptions. The second model is loaded in the database allowing for both vector generation and AI Vector Search without leaving the database. By separating the tasks, the complexity is reduced, making it easier to use existing models, as very few can handle both images and text simultaneously. This approach not only simplifies the problem but also broadens the range of available large language models (LLMs) since each task is more straightforward on its own. + +The workflow diagram illustrates the following steps: + +- Image Input: Start with an image that needs to be described. +- Description Generation: Use a model to generate a textual description or caption for the image. +- Text Vectorization: Pass the generated description through a second model (embedded in the database) that creates vectors from the text. +- APEX Application: Create a quick application leveraging an embedded text model and AI Vector Search + +This method makes the solution more versatile since the text embeddings and search occur within the database allowing any application to be developed. + + +![Image alt text](images/diagram1.png) + + + + + [](youtube:pu79sny1AzY) + +Estimated Workshop Time: 70 Minutes + +### Objectives + +In this workshop, you will learn how to: +* Work with Large Language Models (LLMs) +* Create and Load Vectors +* Create an APEX application using AI Vector Search + +### Prerequisites + +This lab assumes you have: +* An Oracle account + +## Learn More + +* [Oracle AI Vector Search Users Guide](https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/whats-new-oracle-ai-vector-search.html) +* [AI Vector Search Blog](https://blogs.oracle.com/database/post/oracle-announces-general-availability-of-ai-vector-search-in-oracle-database-23ai) + +## Acknowledgements +* **Author** - David Start, Product Management +* **Contributors** - David Start, Product Management, Francis Regalado, Product Management +* **Last Updated By/Date** - David Start, Sept 2024 diff --git a/ai-vector-image/load-desc/images/lab2_1.png b/ai-vector-image/load-desc/images/lab2_1.png new file mode 100644 index 000000000..0ddf5cb5f Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_1.png differ diff --git a/ai-vector-image/load-desc/images/lab2_2.png b/ai-vector-image/load-desc/images/lab2_2.png new file mode 100644 index 000000000..35492c91e Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_2.png differ diff --git a/ai-vector-image/load-desc/images/lab2_3.png b/ai-vector-image/load-desc/images/lab2_3.png new file mode 100644 index 000000000..0675255d8 Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_3.png differ diff --git a/ai-vector-image/load-desc/images/lab2_4.png b/ai-vector-image/load-desc/images/lab2_4.png new file mode 100644 index 000000000..7dea770b5 Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_4.png differ diff --git a/ai-vector-image/load-desc/images/lab2_5.png b/ai-vector-image/load-desc/images/lab2_5.png new file mode 100644 index 000000000..79a98b4ff Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_5.png differ diff --git a/ai-vector-image/load-desc/images/lab2_7.png b/ai-vector-image/load-desc/images/lab2_7.png new file mode 100644 index 000000000..719f9d795 Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_7.png differ diff --git a/ai-vector-image/load-desc/images/lab2_8.png b/ai-vector-image/load-desc/images/lab2_8.png new file mode 100644 index 000000000..361dd257d Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_8.png differ diff --git a/ai-vector-image/load-desc/images/lab2_9.png b/ai-vector-image/load-desc/images/lab2_9.png new file mode 100644 index 000000000..53c7656c8 Binary files /dev/null and b/ai-vector-image/load-desc/images/lab2_9.png differ diff --git a/ai-vector-image/load-desc/images/lab4_1a.png b/ai-vector-image/load-desc/images/lab4_1a.png new file mode 100644 index 000000000..1e4873a1d Binary files /dev/null and b/ai-vector-image/load-desc/images/lab4_1a.png differ diff --git a/ai-vector-image/load-desc/images/lab4_1ba.png b/ai-vector-image/load-desc/images/lab4_1ba.png new file mode 100644 index 000000000..c78106f48 Binary files /dev/null and b/ai-vector-image/load-desc/images/lab4_1ba.png differ diff --git a/ai-vector-image/load-desc/images/sample1.png b/ai-vector-image/load-desc/images/sample1.png new file mode 100644 index 000000000..2d9ad4738 Binary files /dev/null and b/ai-vector-image/load-desc/images/sample1.png differ diff --git a/ai-vector-image/load-desc/images/sample2.png b/ai-vector-image/load-desc/images/sample2.png new file mode 100644 index 000000000..145c9d39c Binary files /dev/null and b/ai-vector-image/load-desc/images/sample2.png differ diff --git a/ai-vector-image/load-desc/load-desc.md b/ai-vector-image/load-desc/load-desc.md new file mode 100644 index 000000000..18b73f3da --- /dev/null +++ b/ai-vector-image/load-desc/load-desc.md @@ -0,0 +1,62 @@ +# Create and Load Image Descriptions + +## Introduction + +This lab will walk you through generating descriptions for all of the images and loading them into the database. + +Estimated Lab Time: 15 minutes + +### Objectives + +In this lab, you will: +* Use two models to generate descriptions for each image +* Load the descriptions and images into a databse + +### Prerequisites + +This lab assumes you have: +* All previous labs successfully completed + + +## Task 1: Open Notebook + +This task will have you login to the Jupyter Notebook environment and run the specific notebook for this lab. + +1. **If you are already logged into the Jupyter Notebook environment skip to step 5 otherwise** open the "View Login Info" section of your workshop. + + ![Image alt text](images/lab4_1ba.png) + +2. Copy the Jupyter Notebook Password and Click the Jupyter Notebook URL + + ![Image alt text](images/lab4_1a.png) + +3. Paste the Jupyter Notebook Password you copied in the previous step into the Notebook + ![Image alt text](images/lab2_3.png) + +4. You should now be on the Jupyter Notebook landing screen.Open the folder named `vector lab` on the left hand side of the screen located in the file explorer + ![Image alt text](images/lab2_4.png) + +5. In the left File Explorer panel open the vector\_lab folder and open the **2\_load\_lab.ipynb** notebook + ![Image alt text](images/lab2_5.png) + ![Image alt text](images/lab2_7.png) + +6. Follow the steps in the notebook. A few things to remember: + - There are markdown blocks and code blocks mixed together + - The run button can be used on both code and markdown blocks (markdown just advances you to the next block) + - When you run a code block there are [ ] next to the code block. If it changes to a [\*] that means it running. If it has a number like [1] then its done running. + - Passwords and additional information you may need will be found in the "View Login Info" where the Jupyter Notebook link was + +**Note: The notebooks can be downloaded in the learn more section for your viewing** + +Once you have completed the steps in the notebook please return to the workshop so you can continue to the next lab. + +## Learn More + +* [Oracle AI Vector Search Users Guide](https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/whats-new-oracle-ai-vector-search.html) +* [AI Vector Search Blog](https://blogs.oracle.com/database/post/oracle-announces-general-availability-of-ai-vector-search-in-oracle-database-23ai) +* [Workshop Notebook Download](https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/labfiles/ocw_image_vector_lab.zip) + +## Acknowledgements +* **Author** - David Start, Product Management +* **Contributors** - David Start, Product Management, Francis Regalado, Product Management +* **Last Updated By/Date** - David Start, Sept 2024 diff --git a/ai-vector-image/load-vectors/images/lab3_1.png b/ai-vector-image/load-vectors/images/lab3_1.png new file mode 100644 index 000000000..0ddf5cb5f Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab3_1.png differ diff --git a/ai-vector-image/load-vectors/images/lab3_2.png b/ai-vector-image/load-vectors/images/lab3_2.png new file mode 100644 index 000000000..35492c91e Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab3_2.png differ diff --git a/ai-vector-image/load-vectors/images/lab3_3.png b/ai-vector-image/load-vectors/images/lab3_3.png new file mode 100644 index 000000000..0675255d8 Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab3_3.png differ diff --git a/ai-vector-image/load-vectors/images/lab3_4.png b/ai-vector-image/load-vectors/images/lab3_4.png new file mode 100644 index 000000000..7dea770b5 Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab3_4.png differ diff --git a/ai-vector-image/load-vectors/images/lab3_5.png b/ai-vector-image/load-vectors/images/lab3_5.png new file mode 100644 index 000000000..0d07fc9de Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab3_5.png differ diff --git a/ai-vector-image/load-vectors/images/lab3_6.png b/ai-vector-image/load-vectors/images/lab3_6.png new file mode 100644 index 000000000..c76dbe6c3 Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab3_6.png differ diff --git a/ai-vector-image/load-vectors/images/lab4_1a.png b/ai-vector-image/load-vectors/images/lab4_1a.png new file mode 100644 index 000000000..1e4873a1d Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab4_1a.png differ diff --git a/ai-vector-image/load-vectors/images/lab4_1ba.png b/ai-vector-image/load-vectors/images/lab4_1ba.png new file mode 100644 index 000000000..c78106f48 Binary files /dev/null and b/ai-vector-image/load-vectors/images/lab4_1ba.png differ diff --git a/ai-vector-image/load-vectors/images/sample1.png b/ai-vector-image/load-vectors/images/sample1.png new file mode 100644 index 000000000..2d9ad4738 Binary files /dev/null and b/ai-vector-image/load-vectors/images/sample1.png differ diff --git a/ai-vector-image/load-vectors/images/sample2.png b/ai-vector-image/load-vectors/images/sample2.png new file mode 100644 index 000000000..145c9d39c Binary files /dev/null and b/ai-vector-image/load-vectors/images/sample2.png differ diff --git a/ai-vector-image/load-vectors/load-vectors.md b/ai-vector-image/load-vectors/load-vectors.md new file mode 100644 index 000000000..1951a062d --- /dev/null +++ b/ai-vector-image/load-vectors/load-vectors.md @@ -0,0 +1,64 @@ +# Create and Load Vectors into the Database + +## Introduction + +This lab will walk you through the steps to load models into the database and then use them to create vectors in the database. + +Estimated Lab Time: 15 minutes + +### Objectives + +In this lab, you will: +* Load a model into the database +* Create vectors for the description fields +* Perform an AI Vector Search + +### Prerequisites + +This lab assumes you have: +* All previous labs successfully completed + + +## Task 1: Open Notebook + +This task will have you login to the Jupyter Notebook environment and run the specific notebook for this lab. + +1. **If you are already logged into the Jupyter Notebook environment skip to step 5 otherwise** open the "View Login Info" section of your workshop. + + ![Image alt text](images/lab4_1ba.png) + +2. Copy the Jupyter Notebook Password and Click the Jupyter Notebook URL + + ![Image alt text](images/lab4_1a.png) + +3. Paste the Jupyter Notebook Password you copied in the previous step into the Notebook + ![Image alt text](images/lab3_3.png) + +4. You should now be on the Jupyter Notebook landing screen +Open the folder named `vector lab` on the left hand side of the screen located in the file explorer + ![Image alt text](images/lab3_4.png) + +5. In the left File Explorer panel open the vector\_lab folder and open the **3\_create\_vectors.ipynb** notebook + ![Image alt text](images/lab3_5.png) + ![Image alt text](images/lab3_6.png) + +6. Follow the steps in the notebook. A few things to remember: + - There are markdown blocks and code blocks mixed together + - The run button can be used on both code and markdown blocks (markdown just advances you to the next block) + - When you run a code block there are [ ] next to the code block. If it changes to a [\*] that means it running. If it has a number like [1] then its done running. + - Passwords and additional information you may need will be found in the "View Login Info" where the Jupyter Notebook link was + +**Note: The notebooks can be downloaded in the learn more section for your viewing** + +Once you have completed the steps in the notebook please return to the workshop so you can continue to the next lab. + +## Learn More + +* [Oracle AI Vector Search Users Guide](https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/whats-new-oracle-ai-vector-search.html) +* [AI Vector Search Blog](https://blogs.oracle.com/database/post/oracle-announces-general-availability-of-ai-vector-search-in-oracle-database-23ai) +* [Workshop Notebook Download](https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/labfiles/ocw_image_vector_lab.zip) + +## Acknowledgements +* **Author** - David Start, Product Management +* **Contributors** - David Start, Product Management, Francis Regalado, Product Management +* **Last Updated By/Date** - David Start, Sept 2024 diff --git a/ai-vector-image/other-livelabs/other-livelabs.md b/ai-vector-image/other-livelabs/other-livelabs.md new file mode 100644 index 000000000..af547743b --- /dev/null +++ b/ai-vector-image/other-livelabs/other-livelabs.md @@ -0,0 +1,8 @@ +# Other LiveLabs you might like + + +- [Autonomous Database Dedicated](https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=677) + +- [Manage and Monitor Autonomous Database](https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=553) + +- [Scaling and Performance in the Autonomous Database](https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=608) diff --git a/ai-vector-image/workshops/sandbox/index.html b/ai-vector-image/workshops/sandbox/index.html new file mode 100644 index 000000000..6acdb69d1 --- /dev/null +++ b/ai-vector-image/workshops/sandbox/index.html @@ -0,0 +1,62 @@ + + + + + + + + + Oracle LiveLabs + + + + + + + + + + + + +
+
+
+
+
+
+
+
+ + + + + diff --git a/ai-vector-image/workshops/sandbox/manifest.json b/ai-vector-image/workshops/sandbox/manifest.json new file mode 100644 index 000000000..f6df9c98a --- /dev/null +++ b/ai-vector-image/workshops/sandbox/manifest.json @@ -0,0 +1,39 @@ +{ + "workshoptitle": "Reimage-ing Search: AI Vector Search with Oracle Database 23ai", + "help": "livelabs-help-**enterarea**_us@oracle.com", + "variables": ["../../variables/variables.json", + "../../variables/variables-in-another-file.json"], + "tutorials": [ + { + "title": "Introduction", + "description": "The Introduction is always second for LiveLabs. The title and contents menu title match for the Introduction.", + "filename": "../../introduction/introduction.md" + }, + { + "title": "Get Started", + "description": "Prerequisites for LiveLabs (Oracle-owned tenancies). The title of the lab and the Contents Menu title (the title above) match for Prerequisite lab. This lab is always first.", + "filename": "https://oracle-livelabs.github.io/common/labs/cloud-login/cloud-login-23ai.md" + }, + { + "title": "Lab 1: Learning about Notebooks and Models", + "filename": "../../generate/generate.md" + }, + { + "title": "Lab 2: Create and Load Descriptions", + "filename": "../../load-desc/load-desc.md" + }, + { + "title": "Lab 3: Create and Load Vectors", + "filename": "../../load-vectors/load-vectors.md" + }, + { + "title": "Lab 4: Building an APEX Application", + "filename": "../../apex/apex.md" + }, + { + "title": "Need Help?", + "description": "Solutions to Common Problems and Directions for Receiving Live Help", + "filename":"https://oracle-livelabs.github.io/common/labs/need-help/need-help-livelabs.md" + } + ] +}