From 07d143ea799b746b692f194cc4355e76ff7a7e38 Mon Sep 17 00:00:00 2001
From: Adam Gardner OpenAI / ChatGPT severely limits the ability for API access if you do not have credit. Adding a small amount of credit ($2-$3) is the best way to make this (and all other ChatGPT demos) run smoothly. This demo uses gpt 4o mini. We have developed, tested and demoed this repository hundreds of times and still have money left from the initial $5 credit load. Support Policy This is a demo project created by the Developer Relations team at Dynatrace, showcasing integrations with open source technologies. Support is provided via GitHub issues only. The materials provided in this repository are offered \"as-is\" without any warranties, express or implied. Use them at your own risk. View the Code The code for this repository is hosted on GitHub. Click the \"View Code on GitHub\" link above. Demo application for giving travel advice written in Python. Observability signals by OpenTelemetry and OpenLLMetry. The demo application has two different versions: The standard version uses OpenAI ChatGPT to generate advice for a given destination and use Weaviate as a cache layer. The RAG version uses Ollama to generate advice for a given destination and PineCone to fetch additional context to refine the advice provided by Ollama. This hands-on is also available as an on-demand webinar. Go to https://github.com/codespaces and delete the codespace which will delete the demo environment. The \"Retrieval-Augmented Generation\" (RAG) version (available on the ollama-pinecone branch) mimicks training an LLM on an internal knowledgebase. It will produce custom destination advice for places the system has explicitly been trained on (the files in the destinations folder). Namely, The RAG version of the demo mimicks training an LLM on an internal knowledgebase. When the application starts, files inside the destinations folder are read, processed, and stored in PineCone for later lookup. Afterwards, each request goes through the LangChain RAG pipeline, which performs the following steps: The user interacts with the demo app (travel advisor) on port The user enters a destination (eg. To run this demo you will need: OpenAI / ChatGPT severely limits the ability for API access if you do not have credit. Adding a small amount of credit ($2-$3) is the best way to make this (and all other ChatGPT demos) run smoothly. This demo uses gpt 4o mini. We have developed, tested and demoed this repository hundreds of times and still have money left from the initial $5 credit load. Go to https://platform.openai.com/api-keys and create a new API Key. Make a note of your Dynatrace URL, it should be in the following format: For example: In Dynatrace, press Create an API token with these permissions: This token will be used by the OpenTelemetry collector and k6 to send data to Dynatrace. The setup script which runs automatically when the codespace is created also uses this to configure span attribute capture rules in Dynatrace this means the relevant OpenTelemetry span attributes will automatically be stored. You should now have When you have these pieces of information, you can proceed. Choose one of the following options to start the codespace: Leave the top section blank and provide your values in the After the codespaces has started (in a new browser tab), the post creation script should begin. This will install everything and will take a few moments. When the script has completed, a success message will briefly be displayed (it is so quick you'll probably miss it) and an empty terminal window will be shown. TODO: Needs new image You may now proceed. In the codespace, switch to the A new browser tab will open and you should see the demo. Type the name of a destination (eg. If you search for Click the \ud83d\udc4d and / or \ud83d\udc4e buttons to indicate your satisfaction level of the result. Clicking these icons will log a message. This log line is then retrieved and processed using DQL in the \"User Sentiment Analysis\" section of the dashboard. This demo comes with several prebuilt dashboards. Do the following in Dynatrace. Repeat this process for all the dashboards inside dynatrace/dashboards/* The application emits distributed traces which can be viewed in Dynatrace: Remember that only the very first requests for a given destination will go out to OpenAI. So expect many many more cached traces than \"live\" traces. A \"full\" call to OpenAI looks like this. Notice the long call halfway through the trace to A call which instead only hits the on-cluster Weaviate cache looks like this. Notice that it is much quicker. The response TTL (max time that a cached prompt is considered \"fresh\") is checked and if the response is \"still fresh\" (ie. Notice the cached prompt is The demo is now complete. Continue to cleanup your environment. Head to the resources page to see other LLM Observability content. Support Policy This is a demo project created by the Developer Relations team at Dynatrace, showcasing integrations with open source technologies. Support is provided via GitHub issues only. The materials provided in this repository are offered \"as-is\" without any warranties, express or implied. Use them at your own risk. Preview Functionality This demo uses functionality that is still in Preview. After creating a Dynatrace environment, please sign up for this preview functionality. View the Code The code for this repository is hosted on GitHub. Click the \"View Code on GitHub\" link above. Support Policy This is a demo project created by the Developer Relations team at Dynatrace, showcasing integrations with open source technologies. Support is provided via GitHub issues only. The materials provided in this repository are offered \"as-is\" without any warranties, express or implied. Use them at your own risk. View the Code The code for this repository is hosted on GitHub. Click the \"View Code on GitHub\" link above. Demo application for giving travel advice written in Python. Observability signals by OpenTelemetry and OpenLLMetry. The demo application has two different versions: The standard version uses OpenAI ChatGPT to generate advice for a given destination and use Weaviate as a cache layer. The RAG version uses Ollama to generate advice for a given destination and PineCone to fetch additional context to refine the advice provided by Ollama. This hands-on is also available as an on-demand webinar. Go to https://github.com/codespaces and delete the codespace which will delete the demo environment. The \"Retrieval-Augmented Generation\" (RAG) version (available on the ollama-pinecone branch) mimicks training an LLM on an internal knowledgebase. It will produce custom destination advice for places the system has explicitly been trained on (the files in the destinations folder). Namely, The RAG version of the demo mimicks training an LLM on an internal knowledgebase. When the application starts, files inside the destinations folder are read, processed, and stored in PineCone for later lookup. Afterwards, each request goes through the LangChain RAG pipeline, which performs the following steps: The user interacts with the demo app (travel advisor) on port The user enters a destination (eg. To run this demo you will need: OpenAI / ChatGPT severely limits the ability for API access if you do not have credit. Adding a small amount of credit ($2-$3) is the best way to make this (and all other ChatGPT demos) run smoothly. This demo uses gpt 4o mini. We have developed, tested and demoed this repository hundreds of times and still have money left from the initial $5 credit load. Go to https://platform.openai.com/api-keys and create a new API Key. Make a note of your Dynatrace URL, it should be in the following format: For example: In Dynatrace, press Create an API token with these permissions: This token will be used by the OpenTelemetry collector and k6 to send data to Dynatrace. The setup script which runs automatically when the codespace is created also uses this to configure span attribute capture rules in Dynatrace this means the relevant OpenTelemetry span attributes will automatically be stored. You should now have When you have these pieces of information, you can proceed. Choose one of the following options to start the codespace: Leave the top section blank and provide your values in the After the codespaces has started (in a new browser tab), the post creation script should begin. This will install everything and will take a few moments. When the script has completed, a success message will briefly be displayed (it is so quick you'll probably miss it) and an empty terminal window will be shown. TODO: Needs new image You may now proceed. In the codespace, switch to the A new browser tab will open and you should see the demo. Type the name of a destination (eg. If you search for Click the \ud83d\udc4d and / or \ud83d\udc4e buttons to indicate your satisfaction level of the result. Clicking these icons will log a message. This log line is then retrieved and processed using DQL in the \"User Sentiment Analysis\" section of the dashboard. This demo comes with several prebuilt dashboards. Do the following in Dynatrace. Repeat this process for all the dashboards inside dynatrace/dashboards/* The application emits distributed traces which can be viewed in Dynatrace: Remember that only the very first requests for a given destination will go out to OpenAI. So expect many many more cached traces than \"live\" traces. A \"full\" call to OpenAI looks like this. Notice the long call halfway through the trace to A call which instead only hits the on-cluster Weaviate cache looks like this. Notice that it is much quicker. The response TTL (max time that a cached prompt is considered \"fresh\") is checked and if the response is \"still fresh\" (ie. Notice the cached prompt is The demo is now complete. Continue to cleanup your environment. Head to the resources page to see other LLM Observability content. Support Policy This is a demo project created by the Developer Relations team at Dynatrace, showcasing integrations with open source technologies. Support is provided via GitHub issues only. The materials provided in this repository are offered \"as-is\" without any warranties, express or implied. Use them at your own risk. Preview Functionality This demo uses functionality that is still in Preview. After creating a Dynatrace environment, please sign up for this preview functionality. View the Code The code for this repository is hosted on GitHub. Click the \"View Code on GitHub\" link above.
-
-
-
3. How it works (RAG)
-
-
-
2. How it works (Standard)
Sydney
) are served from the cache. This saves roundtrips to ChatGPT and thus $
.>> Click here to continue with the exercise#
+Compatibility
-
>> Click here to start the tutorial...#
+4. Demo Prerequisites
Why is a Paid OpenAI Account Required?#
>> Click here to continue with the exercise#
+Resources#
-
diff --git a/search/search_index.json b/search/search_index.json
index c5a24ca..85b28d2 100755
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Large Language Model Observability with Dynatrace","text":"
Bali
and Sydney
. For other locations, the model will provide an answer based on its own knowledge. It is based on Ollama and uses PineCone as a Vector database. The RAG pipeline is built using LangChain.
"},{"location":"how-it-works-rag/#click-here-to-continue-with-the-exercise","title":">> Click here to continue with the exercise","text":""},{"location":"how-it-works-standard/","title":"2. How it works (Standard)","text":"30100
. The app is monitored either via native OpenTelemetry.Sydney
):
"},{"location":"how-it-works-standard/#click-here-to-continue-with-the-exercise","title":">> Click here to continue with the exercise","text":""},{"location":"prerequisites/","title":"4. Demo Prerequisites","text":"
Sydney
is found, the response is returned from the cache.Sydney
) are served from the cache. This saves roundtrips to ChatGPT and thus $
.
"},{"location":"prerequisites/#why-is-a-paid-openai-account-required","title":"Why is a Paid OpenAI Account Required?","text":"
"},{"location":"setup/","title":"5. Setup","text":""},{"location":"setup/#create-openai-api-token","title":"Create OpenAI API Token","text":"https://ENVIRONMENT-ID.live.dynatrace.com\n
"},{"location":"setup/#create-dynatrace-token","title":"Create Dynatrace Token","text":"https://abc12345.live.dynatrace.com\n
Ctrl + k
and search for access tokens
. Choose the first option.
metrics.ingest
)logs.ingest
)events.ingest
)openTelemetryTrace.ingest
)metrics.read
)settings.write
)3
pieces of information:
DT_ENDPOINT
(eg. https://abc12345.live.dynatrace
)DT_API_TOKEN
OPEN_AI_TOKEN
Recommended secrets
form.Ports
tab. Right click port 30100
and choose Open in Browser
Vienna
) into the search bar and click the Advise
button.
Vienna
again, this time, the re1sult will be served from the cache - saving you the roundtrip (time and $) to OpenAI / ChatGPT.
Ctrl + k
and search for dashboards
or select the icon from the left toolbarUpload
button and upload the JSON file.
ctrl + k
search for distributed traces
/api/v1/completion
are created for each call to either OpenAI or a call to the Weaviate cache.openai.chat
. These traces take much longer (3 seconds vs. 500ms).TTL < stale time
) the cached value is returned.123s
. The max age (TTL is (by default) 60
minutes. Therefore the prompt is not outdated and thus returned to the user as valid.
"},{"location":"cleanup/","title":"Cleanup","text":"Bali
and Sydney
. For other locations, the model will provide an answer based on its own knowledge. It is based on Ollama and uses PineCone as a Vector database. The RAG pipeline is built using LangChain.
"},{"location":"how-it-works-standard/","title":"2. How it works (Standard)","text":"30100
. The app is monitored either via native OpenTelemetry.Sydney
):
Sydney
is found, the response is returned from the cache.Sydney
) are served from the cache. This saves roundtrips to ChatGPT and thus $
.
"},{"location":"prerequisites/","title":"4. Demo Prerequisites","text":"
"},{"location":"prerequisites/#why-is-a-paid-openai-account-required","title":"Why is a Paid OpenAI Account Required?","text":"
"},{"location":"resources/","title":"Resources","text":"
"},{"location":"setup/","title":"5. Setup","text":""},{"location":"setup/#create-openai-api-token","title":"Create OpenAI API Token","text":"https://ENVIRONMENT-ID.live.dynatrace.com\n
"},{"location":"setup/#create-dynatrace-token","title":"Create Dynatrace Token","text":"https://abc12345.live.dynatrace.com\n
Ctrl + k
and search for access tokens
. Choose the first option.
metrics.ingest
)logs.ingest
)events.ingest
)openTelemetryTrace.ingest
)metrics.read
)settings.write
)3
pieces of information:
DT_ENDPOINT
(eg. https://abc12345.live.dynatrace
)DT_API_TOKEN
OPEN_AI_TOKEN
"},{"location":"startup/","title":"6. Start The Demo","text":""},{"location":"startup/#time-to-fire-it-up","title":"\ud83c\udd99 Time to Fire it up","text":"Recommended secrets
form.
"},{"location":"use-demo/","title":"7. Use the Demo","text":""},{"location":"use-demo/#accessing-and-using-demo","title":"Accessing and Using Demo","text":"Ports
tab. Right click port 30100
and choose Open in Browser
Vienna
) into the search bar and click the Advise
button.
Vienna
again, this time, the re1sult will be served from the cache - saving you the roundtrip (time and $) to OpenAI / ChatGPT.
"},{"location":"visualise-dt/","title":"Visualising Data in Dynatrace","text":""},{"location":"visualise-dt/#uploading-the-dashboards","title":"Uploading the Dashboards","text":"
Ctrl + k
and search for dashboards
or select the icon from the left toolbarUpload
button and upload the JSON file.
ctrl + k
search for distributed traces
/api/v1/completion
are created for each call to either OpenAI or a call to the Weaviate cache.openai.chat
. These traces take much longer (3 seconds vs. 500ms).TTL < stale time
) the cached value is returned.123s
. The max age (TTL is (by default) 60
minutes. Therefore the prompt is not outdated and thus returned to the user as valid.
"},{"location":"whats-next/","title":"What's Next?","text":"
"},{"location":"snippets/disclaimer/","title":"Disclaimer","text":"🔁 Recap>> Click here to continue with the exercise#
+Launch RAG Version
TODO: Needs new image
You may now proceed.
-Click the 👍 and / or 👎 buttons to indicate your satisfaction level of the result.
Clicking these icons will log a message. This log line is then retrieved and processed using DQL in the "User Sentiment Analysis" section of the dashboard.
-The demo is now complete. Continue to cleanup your environment.
-Head to the resources page to see other LLM Observability content.
-