{"id":21564,"date":"2024-01-29T08:21:02","date_gmt":"2024-01-29T07:21:02","guid":{"rendered":"https:\/\/whiteduck.de\/?p=21564"},"modified":"2024-09-26T20:45:15","modified_gmt":"2024-09-26T18:45:15","slug":"personalizing-ai-how-to-build-apps-based-on-your-own-data","status":"publish","type":"post","link":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/","title":{"rendered":"Personalizing AI \u2013 How to Build Apps Based on Your Own Data"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><\/div><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1170px + 0px );margin-left: calc(-0px \/ 2 );margin-right: calc(-0px \/ 2 );\"><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" style=\"--awb-bg-size:cover;width:100%;\"><div class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\"><div class=\"fusion-clearfix\"><\/div><\/div><\/div><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-one\" style=\"--awb-margin-top-small:0px;--awb-margin-right-small:0px;--awb-margin-bottom-small:20px;--awb-margin-left-small:0px;\"><h1 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:32;line-height:1.31;\"><\/p>\n<p>Personalizing AI \u2013 How to Build Apps Based on Your Own Data<\/p>\n<p><\/h1><\/div><div class=\"fusion-text fusion-text-1\"><\/div><\/p>\n\n\n<p>Generative AI is on everyone&#8217;s lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models, such as those from OpenAI. One of the best ways to maximize the potential of smart applications is to rely on your own data. In this post, we&#8217;ll delve into the available patterns and techniques for personalized AI-based applications using OpenAI, along with Azure services and Open Source.<\/p>\n\n\n\n<p>What you will learn in this post:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/whiteduck.de\/?p=21564#internal-data\">The benefits of using your internal data<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/whiteduck.de\/?p=21564#patterns\">Available Patterns and techniques<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/whiteduck.de\/?p=21564#azure\">How Azure and Azure OpenAI can help<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/whiteduck.de\/?p=21564#opensource\">The power Open Source with Semantic Kernel<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"internal-date\">The benefits of using your internal data<\/h3>\n\n\n\n<p>Integrating contextual data into AI-based applications can pave the way for more customized and efficient user experiences. can provide tailored functions that cater to specific user requirements. Additionally, utilizing our own data increases the accuracy of feedback and interaction from users, optimizing the user experience.<\/p>\n\n\n\n<p>When you set up a PrivateGPT (a private ChatGPT instance based on private models) instance for privacy and security reasons, the integration of private data sources also leads to personalized conversation experiences and a tailored user experience. You ensure the confidentiality of your data by making it accessible only to authorized users within your company for internal use.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"patterns\">Available Patterns and techniques<\/h3>\n\n\n\n<p>This section introduces you to the available development patterns and techniques that enable you to integrate data sources into your AI-based applications.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Invest in Prompt Engineering<\/h4>\n\n\n\n<p><a href=\"https:\/\/platform.openai.com\/docs\/guides\/prompt-engineering\" target=\"_blank\" rel=\"noreferrer noopener\">Prompt engineering<\/a> is the foundation for interacting with generative AI models and is therefore a crucial technique for developing successful AI-based applications, as it helps to ensure that the AI model responds to the specific needs and requirements of the requester. It doesn&#8217;t matter if it&#8217;s a user or an API.<\/p>\n\n\n\n<p>By crafting effective prompts, you can improve the accuracy and relevance of the generated content. But you also have to compensate for the weaknesses of the model by, for example, providing further input data that helps the model respond with a better answer. This also allows you to inject your own contextual data and helps the model generate more informed and up-to-date responses.<\/p>\n\n\n\n<p>As the tokens used to craft the prompt are limited, you are also bound by how much data and content you can add. This is where the next pattern comes in.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Retrieval Augmented Generation (RAG) Pattern<\/h4>\n\n\n\n<p>The goal of the <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/machine-learning\/concept-retrieval-augmented-generation?view=azureml-api-2\" target=\"_blank\" rel=\"noreferrer noopener\">Retrieval Augmented Generation (RAG) pattern<\/a> is to enable the generation of high-quality and relevant responses by first retrieving context-relevant information from a large dataset and then using it to guide the generation of new content. This involves several key components, like prompt engineering, embeddings and vector database, semantic search, and web search.<\/p>\n\n\n\n<p>In the following example, a user asks for a WiFi password. Because this application was implemented using the RAG pattern, the answer will contain the right WiFi password. Of course, the user could also be another application or API.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"344\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-1024x344.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-1024x344.png\" alt=\"\" class=\"lazyload wp-image-21574\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271024%27%20height%3D%27344%27%20viewBox%3D%270%200%201024%20344%27%3E%3Crect%20width%3D%271024%27%20height%3D%27344%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-200x67.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-300x101.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-400x134.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-600x202.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-768x258.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-800x269.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-1024x344.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-1200x403.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/rag-pattern-1536x516.png 1536w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">An example of the RAG pattern<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Normally, the LLM (Large Language Model) would answer with an incorrect password. This is because the model is not able to know the correct WiFi password. However, since the RAG pattern is used here, the user&#8217;s query is enriched with helpful content from a vector database. The query and context are then used as a prompt for the model.<\/p>\n\n\n\n<p>This works because the vector database contains a multidimensional representation of the data fed in, such as, in this example, an internal wiki. Those vectors are called <a href=\"https:\/\/platform.openai.com\/docs\/guides\/embeddings\/what-are-embeddings\" target=\"_blank\" rel=\"noreferrer noopener\">Embeddings<\/a> and are used to cluster and classify data for searching and recommendations.<\/p>\n\n\n\n<p>As mentioned above, using vector databases is just one example of how to implement this pattern.<\/p>\n\n\n\n<p>These are the advantages of using the RAG pattern:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cost-effective and faster implementation due to fewer tokens being used in prompts<\/li>\n\n\n\n<li>Context-aware resonances with the latest information<\/li>\n\n\n\n<li>Improved user confidence due to accurate information containing quotations or references<\/li>\n\n\n\n<li>More control and simpler implementation<\/li>\n<\/ul>\n\n\n\n<p>Later in this post, you will learn how to implement the RAG pattern on Azure.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Fine-tuning a model<\/h4>\n\n\n\n<p>Another way to incorporate your specific data is by <a href=\"https:\/\/platform.openai.com\/docs\/guides\/fine-tuning\" target=\"_blank\" rel=\"noreferrer noopener\">fine-tuning a model<\/a>. However, you should first invest in your prompt engineering, prompt chaining, <a href=\"https:\/\/platform.openai.com\/docs\/guides\/function-calling\" target=\"_blank\" rel=\"noreferrer noopener\">function calling<\/a>, and also validate the RAG pattern based on your needs. Both options are very powerful and support most, if not all, common use cases.<\/p>\n\n\n\n<p>Good use cases for fine-tuning include controlling the model to output content in a specific and customized style, tone, or format, or relying on any industry-specific generic data. A fine-tuned model optimizes based on the few-shot learning approach, the weights of the model based on your data. Therefore, preparing and validating your training data is key to success. <\/p>\n\n\n\n<p>The benefits of a fine-tuned model contain:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Higher quality results compared to prompting<\/li>\n\n\n\n<li>Train with more examples than can fit in one prompt<\/li>\n\n\n\n<li>Token savings due to shorter prompts<\/li>\n\n\n\n<li>Reduced latency times for requests<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"azure\">How Azure and Azure OpenAI can help<\/h3>\n\n\n\n<p>Azure Cloud provides you with a variety of AI- and ML-based services. From <a href=\"https:\/\/azure.microsoft.com\/products\/ai-services\/openai-service\" target=\"_blank\" rel=\"noreferrer noopener\">Azure OpenAI<\/a>, <a href=\"https:\/\/azure.microsoft.com\/products\/machine-learning\" target=\"_blank\" rel=\"noreferrer noopener\">Azure Machine Learning<\/a>, <a href=\"https:\/\/learn.microsoft.com\/azure\/ai-studio\/how-to\/deploy-models-llama?tabs=azure-studio\" target=\"_blank\" rel=\"noreferrer noopener\">Meta Llama\u00a02 models<\/a>, and corresponding and supporting services.<\/p>\n\n\n\n<p>In this post, we focus on <a href=\"https:\/\/learn.microsoft.com\/azure\/ai-services\/openai\/concepts\/use-your-data?tabs=ai-search\" target=\"_blank\" rel=\"noreferrer noopener\">Azure OpenAI on your data<\/a> (currently in preview), which allows you to integrate Azure OpenAI with your own internal data via the RAG pattern described above. Azure OpenAI on your data works with, for example, <a href=\"https:\/\/azure.microsoft.com\/products\/ai-services\/ai-search\" target=\"_blank\" rel=\"noreferrer noopener\">Azure AI Search<\/a> to determine what data to retrieve from the designated data source based on the user input and conversation history provided. This data is then augmented and passed to the OpenAI model as a prompt.<\/p>\n\n\n\n<p>Thereby, Azure AI Search supports keyword, semantic, and vector searches, <a href=\"https:\/\/learn.microsoft.com\/azure\/ai-services\/openai\/concepts\/use-your-data?tabs=ai-search#document-level-access-control\" target=\"_blank\" rel=\"noreferrer noopener\">document-level access control<\/a>, and <a href=\"https:\/\/learn.microsoft.com\/azure\/ai-services\/openai\/concepts\/use-your-data?tabs=ai-search#schedule-automatic-index-refreshes\" target=\"_blank\" rel=\"noreferrer noopener\">schedule automatic index refreshes<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"861\" height=\"388\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-108.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-108.png\" alt=\"\" class=\"lazyload wp-image-21570\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27861%27%20height%3D%27388%27%20viewBox%3D%270%200%20861%20388%27%3E%3Crect%20width%3D%27861%27%20height%3D%27388%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-108-200x90.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-108-300x135.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-108-400x180.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-108-600x270.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-108-768x346.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-108-800x361.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-108.png 861w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 861px) 100vw, 861px\" \/><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/learn.microsoft.com\/azure\/search\/retrieval-augmented-generation-overview\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/learn.microsoft.com\/azure\/search\/retrieval-augmented-generation-overview<\/a><\/figcaption><\/figure>\n<\/div>\n\n\n<p>An example API call against Azure OpenAI with Azure AI Search as a data source using <em>curl<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -i -X POST YOUR_RESOURCE_NAME\/openai\/deployments\/YOUR_DEPLOYMENT_NAME\/extensions\/chat\/completions?api-version=2023-06-01-preview \\\n-H \"Content-Type: application\/json\" \\\n-H \"api-key: YOUR_API_KEY\" \\\n-d \\\n'\n{\n    \"temperature\": 0,\n    \"max_tokens\": 1000,\n    \"top_p\": 1.0,\n    \"dataSources\": &#091;\n        {\n            \"type\": \"AzureCognitiveSearch\",\n            \"parameters\": {\n                \"endpoint\": \"YOUR_AZURE_COGNITIVE_SEARCH_ENDPOINT\",\n                \"key\": \"YOUR_AZURE_COGNITIVE_SEARCH_KEY\",\n                \"indexName\": \"YOUR_AZURE_COGNITIVE_SEARCH_INDEX_NAME\"\n            }\n        }\n    ],\n    \"messages\": &#091;\n        {\n            \"role\": \"user\",\n            \"content\": \"Where do I find our Wifi password?\"\n        }\n    ]\n}\n'<\/code><\/pre>\n\n\n\n<p>In addition, Azure OpenAI on your data also supports <a href=\"https:\/\/learn.microsoft.com\/azure\/cosmos-db\/mongodb\/vcore\/vector-search\" target=\"_blank\" rel=\"noreferrer noopener\">Azure Cosmos DB for MongoDB vector search<\/a>, <a href=\"https:\/\/learn.microsoft.com\/azure\/postgresql\/flexible-server\/how-to-use-pgvector\" target=\"_blank\" rel=\"noreferrer noopener\">Azure Database for PostgreSQL Flexible Server with pgvector<\/a>, Azure Blob Storage (<a href=\"https:\/\/learn.microsoft.com\/azure\/ai-services\/openai\/concepts\/use-your-image-data\" target=\"_blank\" rel=\"noreferrer noopener\">for images using GPT-4 vision<\/a>) or any URLs and web pages as data ingest source.<\/p>\n\n\n\n<p>For a first easy implementation or proof of concept, also <a href=\"https:\/\/oai.azure.com\/portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Azure OpenAI Studio<\/a> allows ingesting data via Textfiles, Markdown, HTML, PDF, and Microsoft Office documents (Word, PowerPoint).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"opensource\">The power Open Source with Semantic Kernel<\/h3>\n\n\n\n<p><a href=\"https:\/\/learn.microsoft.com\/en-us\/semantic-kernel\/overview\/\" target=\"_blank\" rel=\"noreferrer noopener\">Semantic Kernel<\/a> is an\u00a0open source SDK\u00a0that allows developers to build AI-based applications. It is a highly extensible SDK that can be used with models, for example, from OpenAI, Azure OpenAI, and Hugging Face, and supports C#, Python, and Java code. It allows you to define and orchestrate plugins that can be chained together in just a few lines of code. Furthermore, Semantic Kernel abstracts the underlying model API, which allows switching models or versions easily with minor code changes.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"482\" src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-1024x482.png\" data-orig-src=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-1024x482.png\" alt=\"\" class=\"lazyload wp-image-21584\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271024%27%20height%3D%27482%27%20viewBox%3D%270%200%201024%20482%27%3E%3Crect%20width%3D%271024%27%20height%3D%27482%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-200x94.png 200w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-300x141.png 300w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-400x188.png 400w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-600x282.png 600w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-768x362.png 768w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-800x377.png 800w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-1024x482.png 1024w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-1200x565.png 1200w, https:\/\/whiteduck.de\/wp-content\/uploads\/image-111-1536x723.png 1536w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><a href=\"https:\/\/learn.microsoft.com\/semantic-kernel\/agents\/kernel\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/learn.microsoft.com\/semantic-kernel\/agents\/kernel<\/a><\/figcaption><\/figure>\n<\/div>\n\n\n<p>With Semantic Kernel Memory you can make use of the RAG pattern. Currently, the following data stores and integrations are available:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Conventional key-value pairs with a one-to-one match of a key<\/li>\n\n\n\n<li>Conventional local storage from your local disk<\/li>\n\n\n\n<li>Semantic memory search<\/li>\n<\/ul>\n\n\n\n<p>With the last one being the most powerful and support for a variety of vector databases in the Azure and open source ecosystem.<\/p>\n\n\n\n<p>Now it&#8217;s time to get your hands dirty and build your first AI-powered application!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Generative AI is on everyone&#8217;s lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models, such as those from OpenAI. One of the best ways to maximize the potential of smart applications is to rely on your own data. In this post, we&#8217;ll <a href=\"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/\"> <\/p>\n<div style=\"color:#ff9900\">[&#8230;]<\/div>\n<p><\/a><\/p>\n","protected":false},"author":8,"featured_media":21668,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_tribe_events_control_status":"","_tribe_events_control_status_canceled_reason":"","_tribe_events_control_status_postponed_reason":"","_tribe_events_control_online":"","_tribe_events_control_online_url":"","footnotes":""},"categories":[578,104,432],"tags":[570,113,437,316,624,575],"class_list":["post-21564","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai","category-azure","category-cloud-native","tag-ai","tag-azure","tag-cloud-native","tag-cloudnative","tag-genai","tag-openai"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Personalizing AI \u2013 How to Build Apps Based on Your Own Data - white duck<\/title>\n<meta name=\"description\" content=\"Generative AI is on everyone&#039;s lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models such as those from OpenAI.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Personalizing AI \u2013 How to Build Apps Based on Your Own Data - white duck\" \/>\n<meta property=\"og:description\" content=\"Generative AI is on everyone&#039;s lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models such as those from OpenAI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/\" \/>\n<meta property=\"og:site_name\" content=\"white duck\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/whiteduckgmbh\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-29T07:21:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-26T18:45:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whiteduck.de\/wp-content\/uploads\/dev-ai.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2561\" \/>\n\t<meta property=\"og:image:height\" content=\"1702\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nico Meisenzahl\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:site\" content=\"@whiteduck_gmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nico Meisenzahl\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/\"},\"author\":{\"name\":\"Nico Meisenzahl\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/c26beb86db4a71e77e24854ed07eda69\"},\"headline\":\"Personalizing AI \u2013 How to Build Apps Based on Your Own Data\",\"datePublished\":\"2024-01-29T07:21:02+00:00\",\"dateModified\":\"2024-09-26T18:45:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/\"},\"wordCount\":1460,\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/dev-ai.png\",\"keywords\":[\"AI\",\"Azure\",\"Cloud Native\",\"cloudnative\",\"GenAI\",\"openai\"],\"articleSection\":[\"AI\",\"Azure\",\"Cloud Native\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/\",\"name\":\"Personalizing AI \u2013 How to Build Apps Based on Your Own Data - white duck\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/dev-ai.png\",\"datePublished\":\"2024-01-29T07:21:02+00:00\",\"dateModified\":\"2024-09-26T18:45:15+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/c26beb86db4a71e77e24854ed07eda69\"},\"description\":\"Generative AI is on everyone's lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models such as those from OpenAI.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/#primaryimage\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/dev-ai.png\",\"contentUrl\":\"https:\\\/\\\/whiteduck.de\\\/wp-content\\\/uploads\\\/dev-ai.png\",\"width\":2561,\"height\":1702,\"caption\":\"dev ai\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/personalizing-ai-how-to-build-apps-based-on-your-own-data\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Personalizing AI \u2013 How to Build Apps Based on Your Own Data\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/\",\"name\":\"white duck\",\"description\":\"Your Partner for Microsoft Azure &amp; AI\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/#\\\/schema\\\/person\\\/c26beb86db4a71e77e24854ed07eda69\",\"name\":\"Nico Meisenzahl\",\"description\":\"Nico Meisenzahl works as Senior Cloud &amp; DevOps Consultant at white duck. As an elected Microsoft MVP, Docker Community Leader and GitLab Hero, his current passion is for topics around Cloud-Native and Kubernetes. Nico is a frequent speaker at conferences, user group events and Meetups in Europe and the United States.\",\"sameAs\":[\"https:\\\/\\\/meisenzahl.org\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/nicomeisenzahl\\\/\"],\"url\":\"https:\\\/\\\/whiteduck.de\\\/en\\\/author\\\/nmeisenzahl\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Personalizing AI \u2013 How to Build Apps Based on Your Own Data - white duck","description":"Generative AI is on everyone's lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models such as those from OpenAI.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/","og_locale":"en_US","og_type":"article","og_title":"Personalizing AI \u2013 How to Build Apps Based on Your Own Data - white duck","og_description":"Generative AI is on everyone's lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models such as those from OpenAI.","og_url":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/","og_site_name":"white duck","article_publisher":"https:\/\/www.facebook.com\/whiteduckgmbh","article_published_time":"2024-01-29T07:21:02+00:00","article_modified_time":"2024-09-26T18:45:15+00:00","og_image":[{"width":2561,"height":1702,"url":"https:\/\/whiteduck.de\/wp-content\/uploads\/dev-ai.png","type":"image\/png"}],"author":"Nico Meisenzahl","twitter_card":"summary_large_image","twitter_creator":"@whiteduck_gmbh","twitter_site":"@whiteduck_gmbh","twitter_misc":{"Written by":"Nico Meisenzahl","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/#article","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/"},"author":{"name":"Nico Meisenzahl","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/c26beb86db4a71e77e24854ed07eda69"},"headline":"Personalizing AI \u2013 How to Build Apps Based on Your Own Data","datePublished":"2024-01-29T07:21:02+00:00","dateModified":"2024-09-26T18:45:15+00:00","mainEntityOfPage":{"@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/"},"wordCount":1460,"image":{"@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/dev-ai.png","keywords":["AI","Azure","Cloud Native","cloudnative","GenAI","openai"],"articleSection":["AI","Azure","Cloud Native"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/","url":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/","name":"Personalizing AI \u2013 How to Build Apps Based on Your Own Data - white duck","isPartOf":{"@id":"https:\/\/whiteduck.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/#primaryimage"},"image":{"@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/#primaryimage"},"thumbnailUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/dev-ai.png","datePublished":"2024-01-29T07:21:02+00:00","dateModified":"2024-09-26T18:45:15+00:00","author":{"@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/c26beb86db4a71e77e24854ed07eda69"},"description":"Generative AI is on everyone's lips. Both software providers and companies with in-house developers have started to implement intelligent applications and functions based on generative AI models such as those from OpenAI.","breadcrumb":{"@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/#primaryimage","url":"https:\/\/whiteduck.de\/wp-content\/uploads\/dev-ai.png","contentUrl":"https:\/\/whiteduck.de\/wp-content\/uploads\/dev-ai.png","width":2561,"height":1702,"caption":"dev ai"},{"@type":"BreadcrumbList","@id":"https:\/\/whiteduck.de\/en\/personalizing-ai-how-to-build-apps-based-on-your-own-data\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/whiteduck.de\/en\/"},{"@type":"ListItem","position":2,"name":"Personalizing AI \u2013 How to Build Apps Based on Your Own Data"}]},{"@type":"WebSite","@id":"https:\/\/whiteduck.de\/en\/#website","url":"https:\/\/whiteduck.de\/en\/","name":"white duck","description":"Your Partner for Microsoft Azure &amp; AI","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/whiteduck.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/whiteduck.de\/en\/#\/schema\/person\/c26beb86db4a71e77e24854ed07eda69","name":"Nico Meisenzahl","description":"Nico Meisenzahl works as Senior Cloud &amp; DevOps Consultant at white duck. As an elected Microsoft MVP, Docker Community Leader and GitLab Hero, his current passion is for topics around Cloud-Native and Kubernetes. Nico is a frequent speaker at conferences, user group events and Meetups in Europe and the United States.","sameAs":["https:\/\/meisenzahl.org","https:\/\/www.linkedin.com\/in\/nicomeisenzahl\/"],"url":"https:\/\/whiteduck.de\/en\/author\/nmeisenzahl\/"}]}},"_links":{"self":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/21564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/comments?post=21564"}],"version-history":[{"count":0,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/posts\/21564\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media\/21668"}],"wp:attachment":[{"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/media?parent=21564"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/categories?post=21564"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whiteduck.de\/en\/wp-json\/wp\/v2\/tags?post=21564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}