From 64289b509253a9ebbefc75c99b8dc7e48126567e Mon Sep 17 00:00:00 2001 From: Harjot Gill Date: Sat, 16 Mar 2024 22:14:34 -0700 Subject: [PATCH 1/5] add fn acquisition blog --- blog/fluxninja-acquisition-2024-03-17/blog.md | 96 ++++++++++++++++++ .../preview.png | Bin 0 -> 105797 bytes docs/guides/prompt-customization.md | 2 +- 3 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 blog/fluxninja-acquisition-2024-03-17/blog.md create mode 100644 blog/fluxninja-acquisition-2024-03-17/preview.png diff --git a/blog/fluxninja-acquisition-2024-03-17/blog.md b/blog/fluxninja-acquisition-2024-03-17/blog.md new file mode 100644 index 00000000..b4b64a48 --- /dev/null +++ b/blog/fluxninja-acquisition-2024-03-17/blog.md @@ -0,0 +1,96 @@ +--- +slug: fluxninja-joins-coderabbit +title: FluxNinja joins CodeRabbit +description: + CodeRabbit has acquired FluxNinja, a startup that provides a platform for + building scalable generative AI applications. +authors: [gur, vishu] +tags: + [ + "AI", + "Acquisition", + "Generative AI", + "Code Review", + "Load Management", + "Rate Limiting", + "Caching", + "Scheduler", + ] +image: ./preview.png +--- + +![FluxNinja joins CodeRabbit](./preview.png) + +We are excited to announce that CodeRabbit has acquired FluxNinja, a startup +that provides a platform for building scalable generative AI applications. This +acquisition will allow us to ship new use cases at an industrial scale while +sustaining our rapidly growing user base. FluxNinja's Aperture product provides +advanced rate-limiting, caching, and request prioritization capabilities for +building reliable and cost-effective AI workflows. + + + +Since our launch, Aperture's open-source core engine has been critical to our +infrastructure. Our initial use case centered around mitigating aggressive rate +limits imposed by OpenAI, allowing us to prioritize paid and real-time chat +users during peak load hours while queuing requests from the free users. +Further, we used Aperture's caching and rate-limiting capabilities to offer +open-source developers a fully featured free tier while minimizing abuse. These +capabilities allowed us to scale our user base without ever putting up a +waitlist and at a price point that is sustainable for us. With Aperture's help, +CodeRabbit has scaled to over 100K repositories and several thousand +organizations under its review in a short period. + +We started CodeRabbit with a vision to build an AI-first developer tooling +company from the ground up. Building enterprise-ready applied AI tech is unlike +any other software engineering challenge of the past. Based on our learnings +while building complex workflows, it became apparent that we need to invest in a +platform that can solve the following problems: + +- Prompt server: Prompt design and runtime rendering is akin to responsive web + design, in which a page has to be rendered differently based on the screen + size and other parameters. We need a platform that can render prompts based on + the context windows of underlying models and prioritize the context packing + based on business attributes. For instance, it's impossible to include the + entire repository and past conversations in a single prompt for code review. + Even if it were possible, LLM models exhibit poor recall when doing an + inference on a large context window. While it may be acceptable for use cases + like chat, it’s not for use cases like code reviews that require accurate and + precise outputs. + +- Observability into LLM outputs: One key challenge with prompting is that it's + inherently non-deterministic. The same prompt can result in vastly different + outputs, which can be frustrating, but this is precisely what makes AI systems + powerful in the first place. Even slight variations in the prompt can result + in vastly inferior or noisy outputs, leading to a decline in user conversion. + At the same time, the underlying AI models are ever-evolving, and the same + prompts drift over time as the models get regular updates. Traditional + observability is of little use here, and we need to rethink how we classify + and track different outputs and their quality. Again, this is a problem that + we have to solve in-house. + +- Guardrails: Since we provide a free service to public repositories, we must + ensure that our product is not misused beyond its intended purpose or tricked + into divulging sensitive information, which could include our base prompts. + +While FluxNinja's Aperture project was limited to solving a different problem +around load management and reliability, we found that the underlying technology +and the team's expertise were a perfect foundation for building the AI platform. +Prompt engineering is in its nascent stage but is emerging as a joystick for +controlling AI behavior. Packing the context window with relevant documents +(retrieval augmented generation, aka RAG) is also emerging as the preferred way +of providing proprietary data compared to fine-tuning the model. Most AI labs +focus on increasing the context window rather than making fine-tuning easier or +cheaper. Despite the emergence of these clear trends, applied AI systems are +still in their infancy. None of the recent AI vendors are building the "right" +platform, as most of their focus has been on background/durable execution +platforms, model routing proxies/gateways, chaining RAG pipelines using reusable +components, and so on. Most of these approaches fall short of what a real-world +AI workflow requires. The right abstractions and best practices will still have +to appear, and the practitioners themselves will have to build them. Creating +the “right” AI platform will be a differentiator for AI-first companies, and we +are excited to tackle this problem head-on with a systems engineering mindset. + +We are excited to have the FluxNinja team on board and to bring our users the +best-in-class AI workflows. We are also happy to welcome Harjot Gill, the +founder of FluxNinja, and the rest of the team to CodeRabbit. diff --git a/blog/fluxninja-acquisition-2024-03-17/preview.png b/blog/fluxninja-acquisition-2024-03-17/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..727049d8e8b18d91e12834eb962267b86d567be7 GIT binary patch literal 105797 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 literal 0 HcmV?d00001 diff --git a/docs/guides/prompt-customization.md b/docs/guides/prompt-customization.md index b96563c9..f270bd23 100644 --- a/docs/guides/prompt-customization.md +++ b/docs/guides/prompt-customization.md @@ -142,7 +142,7 @@ syntax node matches the rule or not. There are three kinds of atomic rule: #### Relational rule -Relational rule defines the relationship between two syntax nodes. There are +A relational rule defines the relationship between two syntax nodes. There are four kinds of relational rule: `inside`, `has`, `follows` and `precedes`. All four relational rules accept a sub-rule object as their value. The sub-rule From ec7c595bc86559936915a5312cbf6d613bdd734c Mon Sep 17 00:00:00 2001 From: Harjot Gill Date: Sat, 16 Mar 2024 22:21:02 -0700 Subject: [PATCH 2/5] add links --- blog/fluxninja-acquisition-2024-03-17/blog.md | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/blog/fluxninja-acquisition-2024-03-17/blog.md b/blog/fluxninja-acquisition-2024-03-17/blog.md index b4b64a48..a507d024 100644 --- a/blog/fluxninja-acquisition-2024-03-17/blog.md +++ b/blog/fluxninja-acquisition-2024-03-17/blog.md @@ -21,25 +21,30 @@ image: ./preview.png ![FluxNinja joins CodeRabbit](./preview.png) -We are excited to announce that CodeRabbit has acquired FluxNinja, a startup -that provides a platform for building scalable generative AI applications. This -acquisition will allow us to ship new use cases at an industrial scale while -sustaining our rapidly growing user base. FluxNinja's Aperture product provides -advanced rate-limiting, caching, and request prioritization capabilities for -building reliable and cost-effective AI workflows. +We are excited to announce that CodeRabbit has acquired +[FluxNinja](https://fluxninja.com), a startup that provides a platform for +building scalable generative AI applications. This acquisition will allow us to +ship new use cases at an industrial scale while sustaining our rapidly growing +user base. FluxNinja's Aperture product provides advanced rate-limiting, +caching, and request prioritization capabilities for building reliable and +cost-effective AI workflows. -Since our launch, Aperture's open-source core engine has been critical to our -infrastructure. Our initial use case centered around mitigating aggressive rate -limits imposed by OpenAI, allowing us to prioritize paid and real-time chat -users during peak load hours while queuing requests from the free users. -Further, we used Aperture's caching and rate-limiting capabilities to offer -open-source developers a fully featured free tier while minimizing abuse. These -capabilities allowed us to scale our user base without ever putting up a -waitlist and at a price point that is sustainable for us. With Aperture's help, -CodeRabbit has scaled to over 100K repositories and several thousand -organizations under its review in a short period. +Since our launch, +[Aperture's open-source](https://github.com/fluxninja/aperture) core engine has +been critical to our infrastructure. Our initial use case centered around +[mitigating aggressive rate limits](../openai-rate-limits-2023-10-23/blog.md) +imposed by OpenAI, allowing us to prioritize paid and real-time chat users +during peak load hours while queuing requests from the free users. Further, we +used Aperture's +[caching and rate-limiting capabilities](../how-we-built-cost-effective-generative-ai-application-2023-12-23/blog.md) +to manage costs that in turn allowed us to offer open-source developers a fully +featured free tier by minimizing abuse. These capabilities allowed us to scale +our user base without ever putting up a waitlist and at a price point that is +sustainable for us. With Aperture's help, CodeRabbit has scaled to over 100K +repositories and several thousand organizations under its review in a short +period. We started CodeRabbit with a vision to build an AI-first developer tooling company from the ground up. Building enterprise-ready applied AI tech is unlike From 8236915a9b2b24a667fecf7768bb07320ea733b5 Mon Sep 17 00:00:00 2001 From: Harjot Gill Date: Sat, 16 Mar 2024 22:22:55 -0700 Subject: [PATCH 3/5] small fix --- blog/fluxninja-acquisition-2024-03-17/blog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/fluxninja-acquisition-2024-03-17/blog.md b/blog/fluxninja-acquisition-2024-03-17/blog.md index a507d024..8f1841ba 100644 --- a/blog/fluxninja-acquisition-2024-03-17/blog.md +++ b/blog/fluxninja-acquisition-2024-03-17/blog.md @@ -24,7 +24,7 @@ image: ./preview.png We are excited to announce that CodeRabbit has acquired [FluxNinja](https://fluxninja.com), a startup that provides a platform for building scalable generative AI applications. This acquisition will allow us to -ship new use cases at an industrial scale while sustaining our rapidly growing +ship new use cases at an industrial-scale while sustaining our rapidly growing user base. FluxNinja's Aperture product provides advanced rate-limiting, caching, and request prioritization capabilities for building reliable and cost-effective AI workflows. From 4b15aa19c396fb46d36138503d45ff40fa3872cb Mon Sep 17 00:00:00 2001 From: Harjot Gill Date: Sun, 17 Mar 2024 08:50:38 -0700 Subject: [PATCH 4/5] update blog post --- blog/fluxninja-acquisition-2024-03-17/blog.md | 80 ++++++++++++------- 1 file changed, 49 insertions(+), 31 deletions(-) diff --git a/blog/fluxninja-acquisition-2024-03-17/blog.md b/blog/fluxninja-acquisition-2024-03-17/blog.md index 8f1841ba..7c701143 100644 --- a/blog/fluxninja-acquisition-2024-03-17/blog.md +++ b/blog/fluxninja-acquisition-2024-03-17/blog.md @@ -52,31 +52,48 @@ any other software engineering challenge of the past. Based on our learnings while building complex workflows, it became apparent that we need to invest in a platform that can solve the following problems: -- Prompt server: Prompt design and runtime rendering is akin to responsive web - design, in which a page has to be rendered differently based on the screen - size and other parameters. We need a platform that can render prompts based on - the context windows of underlying models and prioritize the context packing - based on business attributes. For instance, it's impossible to include the - entire repository and past conversations in a single prompt for code review. - Even if it were possible, LLM models exhibit poor recall when doing an - inference on a large context window. While it may be acceptable for use cases - like chat, it’s not for use cases like code reviews that require accurate and - precise outputs. +- Prompt rendering: Prompt design and rendering is akin to responsive web + design. Web servers render pages based on the screen size and other + parameters, for example, on a mobile device, navigation bars are usually + rendered as hamburger menus, making it easier for human consumption. + Similarly, we need a prompt server that can render prompts based on the + context windows of underlying models and prioritize the packing of context + based on business attributes, making it easier for AI consumption. It's not + feasible to include the entire repository, past conversations, documentation, + learnings, etc. in a single code review prompt because of the context window + size limitations. Even if it was possible, AI models exhibit poor recall when + doing an inference on a completely packed context window. While tight packing + may be acceptable for use cases like chat, it’s not for use cases like code + reviews that require accurate inferences. Therefore, it's critical to render + prompts in such a way that the quality of inference is high for each use-case, + while being cost-effective and fast. In addition to packing logic, basic + guardrails are also needed, especially when rendering prompts based on inputs + from end-users. Since we provide a free service to public repositories, we + have to ensure that our product is not misused beyond its intended purpose or + tricked into divulging sensitive information, which could include our base + prompts. -- Observability into LLM outputs: One key challenge with prompting is that it's +- Validating quality of inference: Generative AI models consume text and output + text. On the other hand, traditional code and APIs required structured data. + Therefore, the prompt service needs to expose a RESTful or gRPC API that can + be consumed by the other services in the workflow. We touched upon the + rendering of prompts based on structured requests in the previous point, but + the prompt service also needs to parse and validate responses into structured + data. This is a non-trivial problem, and multiple tries are often required to + ensure that the response is thorough. For instance, we found that when we pack + multiple files in a single code review prompt, AI models often miss hunks + within a file or miss files altogether, leading to incomplete reviews. + +- Observability: One key challenge with generative AI and prompting is that it's inherently non-deterministic. The same prompt can result in vastly different outputs, which can be frustrating, but this is precisely what makes AI systems powerful in the first place. Even slight variations in the prompt can result - in vastly inferior or noisy outputs, leading to a decline in user conversion. - At the same time, the underlying AI models are ever-evolving, and the same - prompts drift over time as the models get regular updates. Traditional - observability is of little use here, and we need to rethink how we classify - and track different outputs and their quality. Again, this is a problem that - we have to solve in-house. - -- Guardrails: Since we provide a free service to public repositories, we must - ensure that our product is not misused beyond its intended purpose or tricked - into divulging sensitive information, which could include our base prompts. + in vastly inferior or noisy outputs, leading to a decline in user engagement. + At the same time, the underlying AI models are ever-evolving, and the + established prompts drift over time as the models get regular updates. + Traditional observability is of little use here, and we need to rethink how we + classify and track generated output and measure quality. Again, this is a + problem that we have to solve in-house. While FluxNinja's Aperture project was limited to solving a different problem around load management and reliability, we found that the underlying technology @@ -87,15 +104,16 @@ controlling AI behavior. Packing the context window with relevant documents of providing proprietary data compared to fine-tuning the model. Most AI labs focus on increasing the context window rather than making fine-tuning easier or cheaper. Despite the emergence of these clear trends, applied AI systems are -still in their infancy. None of the recent AI vendors are building the "right" -platform, as most of their focus has been on background/durable execution -platforms, model routing proxies/gateways, chaining RAG pipelines using reusable -components, and so on. Most of these approaches fall short of what a real-world -AI workflow requires. The right abstractions and best practices will still have -to appear, and the practitioners themselves will have to build them. Creating -the “right” AI platform will be a differentiator for AI-first companies, and we -are excited to tackle this problem head-on with a systems engineering mindset. +still in their infancy. None of the recent AI vendors seem to be building the +"right" platform, as most of their focus has been on background/durable +execution frameworks, model routing proxies/gateways, composable RAG pipelines, +and so on. Most of these approaches fall short of what a real-world AI workflow +requires. The right abstractions and best practices will still have to appear, +and the practitioners themselves will have to build them. AI platforms will be a +differentiator for AI-first companies, and we are excited to tackle this problem +head-on with a systems engineering mindset. We are excited to have the FluxNinja team on board and to bring our users the -best-in-class AI workflows. We are also happy to welcome Harjot Gill, the -founder of FluxNinja, and the rest of the team to CodeRabbit. +best-in-class AI workflows. We are also happy to welcome +[Harjot Gill](https://www.linkedin.com/in/harjotsgill/), the founder of +FluxNinja, and the rest of the team to CodeRabbit. From 9e55df4b2da9ef0b3ccfa32e2f0edb1be50cbb54 Mon Sep 17 00:00:00 2001 From: Harjot Gill Date: Sun, 17 Mar 2024 09:09:38 -0700 Subject: [PATCH 5/5] update blog post --- blog/fluxninja-acquisition-2024-03-17/blog.md | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/blog/fluxninja-acquisition-2024-03-17/blog.md b/blog/fluxninja-acquisition-2024-03-17/blog.md index 7c701143..16e87cb4 100644 --- a/blog/fluxninja-acquisition-2024-03-17/blog.md +++ b/blog/fluxninja-acquisition-2024-03-17/blog.md @@ -24,10 +24,10 @@ image: ./preview.png We are excited to announce that CodeRabbit has acquired [FluxNinja](https://fluxninja.com), a startup that provides a platform for building scalable generative AI applications. This acquisition will allow us to -ship new use cases at an industrial-scale while sustaining our rapidly growing -user base. FluxNinja's Aperture product provides advanced rate-limiting, -caching, and request prioritization capabilities for building reliable and -cost-effective AI workflows. +ship new use cases at an industrial-pace while sustaining our rapidly growing +user base. FluxNinja's Aperture product provides advanced rate & concurrency +limiting, caching, and request prioritization capabilities that are essential +for reliable and cost-effective AI workflows. @@ -73,16 +73,17 @@ platform that can solve the following problems: tricked into divulging sensitive information, which could include our base prompts. -- Validating quality of inference: Generative AI models consume text and output +- Validation & quality checks: Generative AI models consume text and output text. On the other hand, traditional code and APIs required structured data. Therefore, the prompt service needs to expose a RESTful or gRPC API that can be consumed by the other services in the workflow. We touched upon the rendering of prompts based on structured requests in the previous point, but - the prompt service also needs to parse and validate responses into structured - data. This is a non-trivial problem, and multiple tries are often required to - ensure that the response is thorough. For instance, we found that when we pack - multiple files in a single code review prompt, AI models often miss hunks - within a file or miss files altogether, leading to incomplete reviews. + the prompt service also needs to parse, validate responses into structured + data and measure the quality of the inference. This is a non-trivial problem, + and multiple tries are often required to ensure that the response is thorough + and meets the quality bar. For instance, we found that when we pack multiple + files in a single code review prompt, AI models often miss hunks within a file + or miss files altogether, leading to incomplete reviews. - Observability: One key challenge with generative AI and prompting is that it's inherently non-deterministic. The same prompt can result in vastly different