Skip to content

Konveyor AI - static code analysis driven migration to new targets via Generative AI

License

Notifications You must be signed in to change notification settings

konveyor/kai

Repository files navigation

Kai (Konveyor AI)


Kai (/kaɪ/, rhymes with pie) - An AI-enabled tool that simplifies the process of modernizing application source code to a new platform. It uses Large Language Models (LLMs) guided by static code analysis, along with data from Konveyor. This data provides insights into how the organization solved similar problems in the past, helping streamline and automate the code modernization process.

🔍 About The Project

Kai is an AI-enabled tool that assists with modernizing applications. Kai is designed to help developers write code more efficiently by providing suggestions and solutions to common problems. It does this by performing Retrieval Augmented Generation (RAG), working with LLMs by using Konveyor analysis reports about the codebase and generating solutions based on previously solved examples.

Now, you may be thinking: How is Kai different than other generative AI tools?

1. Kai uses Konveyor’s analysis reports

Konveyor generates analysis reports via Kantra throughout a migration. This history of reports tells you what’s wrong with your codebase, where the issues are, and when they happened. This functionality exists today, and developers are already using this data to make decisions. And because of our RAG approach, this is all possible without additional fine-tuning.

2. Kai learns throughout a migration

As you migrate more pieces of your codebase with Kai, it can learn from the data available, and get better recommendations for the next application, and the next, and so on. This shapes the code suggestions to be similar to how your organization has solved problems in the past.

3. Kai is focused on migration

LLMs are very powerful tools, but without explicit guidance, they can generate a lot of garbage. Using Konveyor’s analysis reports allows us to focus Kai’s generative power on the specific problems that need to be solved. This pointed, specific data is the key to unlocking the full potential of large language models.

🏫 Learn More

Note

Kai is in early development. We are actively working on improving the tool and adding new features. If you are interested in contributing to the project, please see our Contributor Guide.

🗺️ Roadmap

  • See ROADMAP.md to learn about the project's goals and milestones

🛠️ Design and Architecture

🗣️ Conference Talks and Blog Posts

📽️ Demo Video

DemoVideo

Check out our 15 minute guided demo video to see Kai in action!

Additional YouTube Videos from Community Members

🚀 Getting Started

We recommend new users download a release of Kai and then walk through a guided scenario to get a feel of Kai's potential. We've streamlined the install experience so you just need to download a .vsix file and install it in your VSCode IDE.

  1. Please follow the steps here to proceed with getting started: docs/getting_started.md
  2. After you have Kai installed we encourage you to run through one of our guided scenarios at: docs/scenarios

Documentation

Please see docs/README.md for an overview of our documentation

🌐 Contributing

Our project welcomes contributions from any member of our community. To get started contributing, please see our Contributor Guide.

⚖️ Code of Conduct

Refer to Konveyor's Code of Conduct here.

📜 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.