-
Notifications
You must be signed in to change notification settings - Fork 10.1k
First round of "how we AI" topics to get the ball rolling. #26422
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
50 commits
Select commit
Hold shift + click to select a range
ae85372
First round of "how we AI" topics to get the ball rolling.
caley-b 481ab22
fixed spacing issue in the frontmatter.
caley-b e304007
Fixed titles and made some of the headings smaller.
caley-b dbf4998
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b ca9670f
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 124d80d
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 8dfb7b3
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b b495bc0
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b dfeb6c6
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 4f764d7
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b da432c8
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 4eb8afd
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/in…
caley-b 073d932
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-libr…
caley-b 2e9e9e1
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-libr…
caley-b 47a740c
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b cc1e038
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 39112d9
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 0e0b0f7
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 8b874dc
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 956f8d1
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 8bd4ec2
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 5be5199
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b f52c0e3
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b e4423b9
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 61964ec
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 10edc65
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b d82d4ad
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b bbf0734
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b caf6844
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b c534e4e
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 33402ad
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b d5ee24c
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cl…
caley-b 0e925c7
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/in…
caley-b fc4e706
Update src/content/docs/style-guide/how-we-docs/how-we-ai/examples/in…
caley-b 622633a
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-libr…
caley-b 9d42536
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-libr…
caley-b caa1023
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-libr…
caley-b e7799af
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-libr…
caley-b f20dc96
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b 587fd2f
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b e606877
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b 16ffeb8
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b bc9e1b8
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b 21a1239
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b 54c3f48
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b 78555c0
Update src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-temp…
caley-b 889441a
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 720e9ff
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 5740676
Update src/content/docs/style-guide/how-we-docs/how-we-ai/when-we-use…
caley-b 8c5991f
Integrated Alexa's feedback.
caley-b File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
47 changes: 47 additions & 0 deletions
47
src/content/docs/style-guide/how-we-docs/how-we-ai/examples/cloudspeaker.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| --- | ||
| pcx_content_type: concept | ||
| title: Cloudspeaker | ||
| sidebar: | ||
| order: 2 | ||
| --- | ||
|
|
||
| One of the greatest challenges at any scale is understanding what your customers are _really_ saying. At Cloudflare, we collect massive amounts of customer feedback every day. This feedback is a goldmine of insight, but it is scattered across dozens of disparate, public-facing channels: our own Cloudflare community forum, Reddit, X (formerly Twitter), GitHub, Discord, HackerNews, and more. | ||
|
|
||
| Individually, these posts are anecdotes. Collectively, they are a strategic asset. The problem is that the sheer size of these datasets makes it impossible to manually process them for product, content, and design insights. This mass of unorganized feedback was an underutilized opportunity to see cross-functional trends. | ||
|
|
||
| To solve this, we built CloudSpeaker, an internal tool created to amplify the voice of the user. Its purpose is to save time, increase efficiency, and consolidate public feedback from all these external communities into a single, unified view. | ||
|
|
||
| ## The goal: Turning unstructured noise into actionable insight | ||
|
|
||
| CloudSpeaker was designed to give any stakeholder at Cloudflare — from product managers and engineers to our user experience teams — a quick way to "check the pulse" of the products and features they own. | ||
|
|
||
| The tool allows anyone to see: | ||
|
|
||
| - A combined view of product feedback from many channels. | ||
| - Recurring issues and customer pain points. | ||
| - General sentiment for a product over time. | ||
|
|
||
| This consolidated view is now a key part of our planning cycles, informing everything from user research and persona creation to feature requests and quarterly backlog prioritization. | ||
|
|
||
| ## How it is built: An AI-powered data pipeline | ||
|
|
||
| CloudSpeaker is built entirely on our own products. The real power, however, comes from its AI-driven data pipeline, managed by our Data Intelligence team. | ||
|
|
||
| Here is how it works: | ||
|
|
||
| 1. **Ingestion:** On a daily basis, our pipelines ingest new community content from our various public sources. | ||
| 2. **AI classification:** This new, unstructured content is fed into our AI Content Pipeline. We use Large Language Models (LLMs) via [Workers AI](/workers-ai/) to automatically classify every single post. Each post is tagged with three key pieces of information: | ||
| - **Product(s) mentioned:** It identifies which of the 60+ Cloudflare products are being discussed. | ||
| - **Sentiment:** The model analyzes the text to determine the user's sentiment, classifying it on a spectrum from `negative` to `neutral` to `positive`. | ||
| - **Post type:** It categorizes the intent of the post, such as a `help request`, `feature request`, or `bug report`. | ||
| 3. **Storage and display:** Once the AI completes its inference, these new classifications are stored in our D1 database and become viewable in the CloudSpeaker UI. | ||
|
|
||
| ## The workflow: On-demand AI analysis | ||
|
|
||
| The backend classification pipeline solves the problem of manual processing. The frontend application solves the problem of accessibility. | ||
|
|
||
| In the CloudSpeaker dashboard, a product manager can filter the entire dataset — spanning up to six months — by any combination of product, sentiment, post type, or date range. If they want to see all `negative` sentiment posts about a specific product that were `feature requests` in the last quarter, they can do so in seconds. | ||
|
|
||
| Furthermore, we added a second layer of AI directly into the UI. After filtering down to a set of comments, the user can select a **Summarize** button. This uses Workers AI to generate an on-the-fly summary of the currently displayed comments, providing an instant, qualitative overview of quantitative data. | ||
|
|
||
| CloudSpeaker is a powerful example of using AI not to generate content, but to analyze and structure the vast amounts of content our users generate every day. It transforms what was once an impossible manual task into a critical source of automated, actionable insights. | ||
47 changes: 47 additions & 0 deletions
47
src/content/docs/style-guide/how-we-docs/how-we-ai/examples/clue.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,47 @@ | ||
| --- | ||
| pcx_content_type: concept | ||
| title: CLUE | ||
| sidebar: | ||
| order: 1 | ||
| --- | ||
|
|
||
| At Cloudflare, we believe that high-quality, customer-facing content is a critical part of the user experience. But as teams scale, maintaining a consistent voice, tone, and terminology across thousands of UI strings, error messages, and API descriptions becomes a monumental challenge. Traditional style guides and glossaries are essential, but they are static. They cannot provide real-time feedback or help us _measure_ content quality. | ||
|
|
||
| To solve this, we built CLUE: Content Legibility for User Ease. CLUE is an internal tool that functions as a personal writing assistant for everyone at Cloudflare. It empowers anyone, from engineers to product managers, to feel confident in their content creation. | ||
|
|
||
| When a stakeholder shares content with CLUE, it provides a score and actionable recommendations. This simple feedback loop is a powerful mechanism for measuring and improving our content over time. | ||
|
|
||
| ## The goal: Quantifying "good content" | ||
|
|
||
| The core challenge CLUE addresses is that "good" content is easy to recognize but hard to measure. We know that effective copy uses an active voice, has an action-led structure, and removes unnecessary words, but how do you quantify that improvement at scale? | ||
|
|
||
| Our answer was **content scorecards**. Scorecards are a scalable evaluation tool that creates consistency. They allow us to assign measurable value to the elements that define "good content," focusing on the criteria most critical for user success, satisfaction, and understanding. | ||
|
|
||
| The user flow is designed to be straightforward: you select your content type, enter your content, and CLUE provides instant feedback. It supports a wide range of critical content, including: | ||
|
|
||
| - General UI content and page descriptions | ||
| - Error messages | ||
| - API endpoint and parameter descriptions | ||
| - Customer-facing emails | ||
|
|
||
| ## How it is built: A hybrid, model-driven approach | ||
|
|
||
| CLUE was truly built by Cloudflare, for Cloudflare, on Cloudflare. The application itself is built on Cloudflare Pages and protected by Cloudflare Access. | ||
|
|
||
| We adopted a model-driven approach for content evaluation, which provides a systematic, data-driven, and consistent assessment, removing the subjectivity of manual reviews. This model allows us to assess content in seconds, handle complex criteria like readability, and weight criteria based on what we find to be most critical for users. | ||
|
|
||
| Critically, CLUE is not just one thing, it is a hybrid solution of AI and traditional checks. This combination allows us to evaluate context while still having the granular control needed for some elements of our style guide. | ||
|
|
||
| ## The workflow: Using CLUE as an LLM copy editor | ||
|
|
||
| The rise of Generative AI and LLMs, like Gemini, has been a boon for generating text quickly. However, an LLM does not inherently understand or apply Cloudflare's specific content guidelines, voice, and tone. | ||
|
|
||
| This is where CLUE's role becomes essential. CLUE is not designed to _write_ content for you; it is designed to make sure the content you _do_ write meets our standards. | ||
|
|
||
| Think of CLUE as a specialized copy editor. It ensures that any piece of content — whether human-generated or created with an LLM's help — is ready for our users. This pairing is incredibly powerful: | ||
|
|
||
| - **Generate:** A stakeholder uses an LLM to quickly draft initial versions of API descriptions or an error message. | ||
| - **Refine:** They paste that LLM-generated content into CLUE. | ||
| - **Iterate:** CLUE provides targeted tips on how to better meet Cloudflare's glossary, style guide, voice, tone, and UX best practices, turning a generic draft into a polished, effective piece of content. | ||
|
|
||
| This democratizes UX writing, improves our efficiency by reducing manual reviews, and ultimately builds user trust through a consistent, high-quality experience. It helps users learn our products faster and resolve issues more efficiently, which is our ultimate goal. |
27 changes: 27 additions & 0 deletions
27
src/content/docs/style-guide/how-we-docs/how-we-ai/examples/index.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| --- | ||
| pcx_content_type: navigation | ||
| title: Examples | ||
| sidebar: | ||
| order: 5 | ||
| --- | ||
|
|
||
| import { DirectoryListing } from "~/components"; | ||
|
|
||
| The true value of AI is not just in using it; it is in _how_ you use it. At Cloudflare, our team has embraced AI as a **force multiplier**, allowing us to solve internal challenges, scale our expertise, and improve the quality of our work. | ||
|
|
||
| These are not just off-the-shelf AI products. They are tools built _by_ Cloudflare, _for_ Cloudflare, combining our own institutional knowledge, content standards, and logic with the power of AI models. | ||
|
|
||
| ## Why we build our own AI-powered tools | ||
|
|
||
| Our AI-powered solutions have a dual benefit: | ||
|
|
||
| 1. **For our team:** They help us automate manual processes, scale our impact, and focus on higher-value strategic work. | ||
| 2. **For Cloudflare:** They empower all our colleagues — from product to engineering — to make better decisions, create higher-quality content, and understand our users more deeply. | ||
|
|
||
| We have seen a lot of success with this approach, as it allows us to democratize specialized skills. We can embed content strategy, style guide rules, and user feedback analysis directly into the workflows of the people who need it most. | ||
|
|
||
| These tools range in complexity, role, and use case, from simple, locally-run scripts that automate a repetitive chore to full-fledged applications that serve the entire company. | ||
|
|
||
| The following sections provide examples of these tools and our guiding principles. We cover how they were built, the specific problems they solve, and the practical guidelines we've established for using AI effectively. | ||
|
|
||
| <DirectoryListing /> |
23 changes: 23 additions & 0 deletions
23
src/content/docs/style-guide/how-we-docs/how-we-ai/index.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| --- | ||
| pcx_content_type: navigation | ||
| title: How we AI | ||
| sidebar: | ||
| order: 9 | ||
| --- | ||
|
|
||
| import { DirectoryListing } from "~/components"; | ||
|
|
||
| This section shares how Cloudflare uses AI to accelerate and augment our content operations. We view AI as a tool that enables us to do our best work, faster. Whether we are designing prompts, researching a new product, or finding ways to turn a manual, week-long process into a job that takes an afternoon to complete, we are continuously looking for ways to iterate and streamline our operations. We know that when we can save time on one time-intensive task, we can spend more time on improving our content experiences for our customers. | ||
|
|
||
| As a result, we use and have used AI to: | ||
|
|
||
| - Vibecode, test, and deploy a web application for scoring in-product strings, error messages, and API docs. | ||
| - Perform competitive analyses and audits on documentation. | ||
| - Streamline documenting REST API examples. | ||
| - Design prompts based on our content types, templates, and style to enable stakeholders with a doc idea to quickly draft content for us to review and publish. | ||
| - Find topics missing descriptions, generate descriptions based on the page’s content, and add them to each page. | ||
| - And more… | ||
|
|
||
| We hope you learn from the topics below. As always, [submit a pull request](/style-guide/contributions/) if you find something that is inaccurate, missing, or needs more information. | ||
|
|
||
| <DirectoryListing /> |
36 changes: 36 additions & 0 deletions
36
src/content/docs/style-guide/how-we-docs/how-we-ai/prompt-libraries.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| --- | ||
| pcx_content_type: concept | ||
| title: Prompt libraries | ||
| sidebar: | ||
| order: 4 | ||
| --- | ||
|
|
||
| A prompt library is a curated and organized collection of pre-written prompts. These libraries serve as a valuable resource for anyone who frequently interacts with AI, such as writers, developers, and students. At Cloudflare, we use prompt libraries to help our teams scale their work, maintain a consistent brand voice, and efficiently capture and share knowledge across different roles. | ||
|
|
||
| Think of a prompt library as a recipe book for AI. Instead of starting from scratch every time you need the AI to perform a task, you can browse the library for a relevant, pre-tested prompt that is known to produce good results. These prompts are often designed to be reusable and customizable. | ||
|
|
||
| :::note | ||
| While prompts are designed to produce great outputs, the user (human) still needs to provide relevant context and resources for the AI to produce those results and review the output for technical accuracy. It is unlikely one prompt will create a great first draft – some rework, either through follow-up prompts or adding more information – is going to be necessary. | ||
| ::: | ||
|
|
||
| ### Inside a prompt library | ||
|
|
||
| Prompt libraries can vary in complexity (a simple table in an internal wiki topic versus a web-based application) and content, but they typically contain: | ||
|
|
||
| - **A collection of prompts:** These are the core of the library, ranging from simple questions to complex instructions with multiple parameters. | ||
| - **Categorization:** Prompts are usually organized by task (for example, writing, coding, summarizing), role (for example, developer, account executives, product managers), or output format (for example, blog post, email, code snippet). | ||
| - **Prompt templates:** Many libraries include templates with placeholders that users can fill in with their specific information. This allows for easy customization and reuse. | ||
| - **Examples and best practices:** Some libraries provide examples of the output generated by a particular prompt, along with tips on how to use and modify it effectively. | ||
|
|
||
| ### Key benefits of using a prompt library | ||
|
|
||
| Utilizing a prompt library offers several significant advantages: | ||
|
|
||
| - **Increased efficiency:** By providing ready-to-use prompts, libraries save a significant amount of time and effort that would otherwise be spent on crafting and testing new prompts for recurring tasks. | ||
| - **Improved consistency and quality:** Pre-tested prompts that are known to work well lead to more consistent and higher-quality outputs from the AI. This is particularly important for businesses that need to maintain a consistent brand voice. | ||
| - **Enhanced learning and discovery:** For those new to prompt engineering, libraries can be an excellent educational tool, showcasing effective prompting techniques and the capabilities of AI models. | ||
| - **Accelerated knowledge capture:** Prompt library users can focus on capturing knowledge instead of building prompts or drafting content manually. This accelerates documenting information and sharing it with others – hopefully to prevent the same issue from occurring again or enabling others to be successful sooner. | ||
| - **Facilitated collaboration:** Shared prompt libraries in a team or organizational setting allow for the dissemination of best practices and successful prompts, fostering collaboration and improving the collective AI literacy. | ||
| - **Scalability:** As you or your organization's use of AI grows, a well-organized prompt library allows for the efficient management and scaling of your prompting strategies. | ||
|
|
||
| In essence, a prompt library is a powerful tool for streamlining interactions with AI models, ensuring high-quality results, and accelerating the adoption and effective use of generative AI technologies. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.