{"id":368937,"date":"2023-07-03T12:58:17","date_gmt":"2023-07-03T11:58:17","guid":{"rendered":"https:\/\/blog.jetbrains.com\/idea\/2023\/06\/ai-assistant-in-jetbrains-ides\/"},"modified":"2023-07-18T15:57:37","modified_gmt":"2023-07-18T14:57:37","slug":"ai-assistant-in-jetbrains-ides","status":"publish","type":"idea","link":"https:\/\/blog.jetbrains.com\/de\/idea\/2023\/07\/ai-assistant-in-jetbrains-ides\/","title":{"rendered":"AI Assistant in JetBrains-IDEs"},"content":{"rendered":"<p><span style=\"font-weight: 400;\"><strong>Update, 13. Juli<\/strong>: AI Assistant ist in den <\/span><span style=\"font-weight: 400;\">Vorabversionen<\/span><span style=\"font-weight: 400;\"> verf\u00fcgbar, wird aber nicht mit den stabilen Versionen von JetBrains IDEs v.2023.2 geb\u00fcndelt. Er kann als separates Plugin installiert werden (Link folgt), das f\u00fcr die Versionen 2023.2.x verf\u00fcgbar ist. Bitte beachten Sie, dass der Zugang zu AI Assistant derzeit durch eine Warteliste begrenzt sein kann.<\/span><\/p>\n<p>Die in dieser Woche ver\u00f6ffentlichten EAP-Builds aller IntelliJ-basierten IDEs und .NET-Tools enthalten eine wichtige neue Funktion: <strong>AI Assistant<\/strong>. Dieser Blogartikel befasst sich mit unseren IntelliJ-basierten IDEs. Ein separater Artikel zu unseren .NET-Tools folgt demn\u00e4chst.<\/p>\n<p>Generative KI- und gro\u00dfe Sprachmodelle ver\u00e4ndern die Landschaft der Software-Entwicklungstools in rasantem Tempo, und es war absolut klar f\u00fcr uns, dass wir diese Technologie in unsere Produkte integrieren wollen. Unser Ansatz bei der Entwicklung der KI-Assistenzfunktion konzentriert sich auf zwei Hauptaspekte:<\/p>\n<ul>\n<li>Einbindung der KI-Unterst\u00fctzung in die wichtigsten Workflows innerhalb der IDE.<\/li>\n<li>Tiefgehende Integration zwischen den KI-Funktionen und den Codeanalyse-F\u00e4higkeiten, die schon immer eine St\u00e4rke der JetBrains-IDEs waren.<\/li>\n<\/ul>\n<p>Die KI-Funktionen werden vom JetBrains AI Service bereitgestellt. Der Service bietet den Produktbenutzer*innen einen transparenten Zugang zu verschiedenen gro\u00dfen Sprachmodellen (large language models, LLMs) und erm\u00f6glicht spezielle KI-gest\u00fctzte Funktionen in vielen JetBrains-Produkten. Zum Start unterst\u00fctzt der Service OpenAI und bietet zus\u00e4tzlich eine Reihe kleinerer Modelle, die von JetBrains erstellt wurden. In Zukunft wollen wir die Unterst\u00fctzung auf weitere Anbieter ausweiten, um unseren Benutzer*innen Zugang zu den besten verf\u00fcgbaren Optionen und Modellen zu gew\u00e4hren.<\/p>\n<p>Au\u00dferdem wollen wir lokale und On-Premises-Modelle unterst\u00fctzen. Bei lokalen Modellen wird der Funktionsumfang voraussichtlich eingeschr\u00e4nkt sein.<\/p>\n<h2 class=\"wp-block-heading\">KI-Funktionen<\/h2>\n<p>Die Funktionen im aktuellen EAP-Build bieten einen Ausblick auf die Richtung, in die wir uns bewegen:<\/p>\n<h3 class=\"wp-block-heading\">KI-Chat<\/h3>\n<p>Im Toolfenster <em>AI Assistant<\/em> k\u00f6nnen Sie eine Unterhaltung mit dem LLM f\u00fchren, Fragen stellen oder mehrere Iterationen einer Aufgabe ausf\u00fchren lassen. Dabei stellt die IDE einen projektspezifischen Kontext bereit, z.\u00a0B. die verwendeten Sprachen und Technologien. Wenn Sie mit dem Ergebnis zufrieden sind, k\u00f6nnen Sie den KI-generierten Code mit der Funktion <em>Insert Snippet at Caret<\/em> in den Editor einf\u00fcgen oder einfach kopieren.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-365407\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/06\/generate_method-1.gif\" alt=\"\" width=\"2138\" height=\"1146\" \/><\/figure>\n<p>Um die KI zu einem bestimmten Codefragment zu befragen, markieren Sie den Abschnitt im Editor und rufen eine Aktion aus dem Men\u00fc <em>AI Actions<\/em> auf (das Men\u00fc ist im Kontextmen\u00fc des Editors oder \u00fcber das Tastenk\u00fcrzel <strong>Alt+Enter<\/strong> verf\u00fcgbar). Mit der Aktion <em>New chat using selection<\/em> k\u00f6nnen Sie eine eigene Aufforderung oder Anfrage an die KI stellen. Je nach Bedarf stehen Ihnen zudem weitere Standard-Prompts f\u00fcr den AI Assistant zur Verf\u00fcgung, zum Beispiel <em>Explain code<\/em> (Code erkl\u00e4ren), <em>Suggest refactoring<\/em> (Refactoring vorschlagen) und <em>Find potential problems<\/em> (Potenzielle Probleme finden).<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-365361\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/06\/explain.gif\" alt=\"\" width=\"2134\" height=\"1146\" \/><\/figure>\n<h3 class=\"wp-block-heading\">Generierung von Dokumentation<\/h3>\n<p>Wenn Sie eine Deklaration mit LLM-Unterst\u00fctzung dokumentieren m\u00f6chten, rufen Sie das Men\u00fc <em>AI Actions<\/em> auf und w\u00e4hlen Sie die Aktion <em>Generate documentation<\/em>. Unterst\u00fctzt werden derzeit Java, Kotlin und Python.<\/p>\n<p>Bei Java und Kotlin wird die Dokumentationsgenerierung vorgeschlagen, wenn Sie mit der Standardmethode \u2013 Eingabe von <code>\/**<\/code> \u2013 einen Dokumentationskommentar-Stub erstellen. Die IDE generiert den statisch bekannten Teil des Kommentars (z.\u00a0B. <code>@param<\/code>-Tags in Java), und die KI generiert den eigentlichen Dokumentationstext.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-365350\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/06\/doc.gif\" alt=\"\" width=\"2134\" height=\"1146\" \/><\/figure>\n<h3 class=\"wp-block-heading\">Namensvorschl\u00e4ge<\/h3>\n<p>Wenn Sie eine Java-, Kotlin- oder Python-Deklaration umbenennen, schl\u00e4gt die KI anhand des Inhalts m\u00f6gliche Namen f\u00fcr die Deklaration vor. Dies kann unter <em>Settings | Tools | AI Assistant<\/em> deaktiviert werden.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-365383\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/06\/rename.gif\" alt=\"\" width=\"2134\" height=\"1146\" \/><\/figure>\n<h3 class=\"wp-block-heading\">Generierung von Commit-Nachrichten<\/h3>\n<p>Der Dialog f\u00fcr Commit-Nachrichten verf\u00fcgt jetzt \u00fcber eine neue Schaltfl\u00e4che <em>Generate Commit Message with AI Assistant<\/em> (Commit-Nachricht mit AI Assistant generieren). Klicken Sie darauf, um die Diffs Ihrer \u00c4nderungen an das LLM zu \u00fcbermitteln, damit dieser eine Commit-Nachricht mit einer Beschreibung Ihrer \u00c4nderungen erzeugen kann.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-365339\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/06\/commit.gif\" alt=\"\" width=\"2138\" height=\"1146\" \/><\/figure>\n<p>\u00a0<\/p>\n<p><span style=\"font-weight: 400;\">Die Funktionen des AI Assistant k\u00f6nnen von Produkt zu Produkt unterschiedlich sein. Weitere Details zu den einzelnen Produkten finden Sie in diesen speziellen Beitr\u00e4gen: <a href=\"https:\/\/blog.jetbrains.com\/clion\/2023\/06\/clion-2023-2-eap4-ai-assistant\/\">CLion<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/go\/2023\/06\/26\/goland-2023-2-eap-6-ai-assistant\/\">GoLand<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/idea\/2023\/06\/intellij-idea-2023-2-eap-6\/\">IntelliJ<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/phpstorm\/2023\/06\/ai-features-in-phpstorm-phpstorm-2023-2-eap-5\/\">PhpStorm<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/pycharm\/2023\/06\/2023-2-eap-4\/\">PyCharm<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2023\/06\/26\/resharper-ai-assistant\/\">ReSharper<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/dotnet\/2023\/06\/26\/rider-ai-assistant\/\">Rider<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/ruby\/2023\/06\/rubymine-2023-2-eap6-introducing-the-new-ai-assistant\/\">RubyMine<\/a>,\u00a0<a href=\"https:\/\/blog.jetbrains.com\/webstorm\/2023\/06\/webstorm-2023-2-eap6\/\">WebStorm<\/a> und <a href=\"https:\/\/blog.jetbrains.com\/fleet\/2023\/06\/fleet-1-19-ai-powered-features-and-easier-configuration-for-rust-analyzer-python-interpreters-and-npm\/\">Fleet<\/a>.<\/span><\/p>\n<h2 class=\"wp-block-heading\">Zugang zu KI-Funktionen<\/h2>\n<p>Um auf die KI-Funktionen zugreifen zu k\u00f6nnen, m\u00fcssen Sie mit Ihrem JetBrains-Account beim JetBrains AI Service angemeldet sein. Sie k\u00f6nnen die Anmeldung im Toolfenster <em>AI Assistant<\/em> oder unter <em>Settings | Tools | AI Assistant<\/em> durchf\u00fchren.<\/p>\n<p><strong>Bitte beachten Sie<\/strong>, dass der JetBrains AI Service m\u00f6glicherweise nicht sofort f\u00fcr jeden zug\u00e4nglich ist. Wir lassen zun\u00e4chst eine begrenzte Anzahl von Benutzer*innen zu, und sobald die Kapazit\u00e4tsgrenze erreicht ist, kommen weitere Anmeldungen auf eine Warteliste. In den kommenden Wochen werden wir nach und nach mehr Personen einladen, das Produkt zu testen.<\/p>\n<p>Der Zugriff auf den KI-Service ist derzeit auf die Regionen beschr\u00e4nkt, in denen der OpenAI-Service verf\u00fcgbar ist. Sie k\u00f6nnen die vollst\u00e4ndige Liste der Regionen <a href=\"https:\/\/www.jetbrains.com\/legal\/docs\/terms\/jetbrains-ai\/service-territory\/\" target=\"_blank\" rel=\"noopener\">hier<\/a> einsehen.<\/p>\n<p>W\u00e4hrend der EAP-Phase ist die Nutzung des KI-Dienstes kostenlos. Das Lizenz- und Preismodell wird zu einem sp\u00e4teren Zeitpunkt bekannt gegeben.<\/p>\n<h2 class=\"wp-block-heading\">Umgang mit Ihrem Code und Ihren Daten<\/h2>\n<p>Wenn Sie KI-Funktionen verwenden, muss die IDE Ihre Anfragen und Ihren Code an den LLM-Anbieter senden. Zus\u00e4tzlich zu den von Ihnen eingegebenen Anfragen kann die IDE weitere Informationen \u00fcbermitteln, z.\u00a0B. Codeabschnitte, Dateitypen, verwendete Frameworks und alle anderen Informationen, die als Kontext f\u00fcr das LLM ben\u00f6tigt werden.<\/p>\n<p>Dar\u00fcber hinaus f\u00fchren EAP-Builds, die die KI-Assistenzfunktion enthalten, eine optionale Erfassung detaillierter Daten \u00fcber die Nutzung der KI-Funktionen durch, einschlie\u00dflich der vollst\u00e4ndigen Kommunikation zwischen Ihnen und dem LLM (sowohl Text als auch Codefragmente). Diese Daten werden streng vertraulich behandelt und von JetBrains ausschlie\u00dflich zur Verbesserung des Produkts verwendet. Sie werden auf keinen Fall an Dritte weitergegeben, nicht zum Training von ML-Modellen, die Code oder Text generieren, verwendet, und in keiner Form an andere Benutzer*innen weitergegeben. Die Option zur Steuerung der detaillierten Datenerfassung finden Sie unter <em>Tools | AI Assistant | Data Sharing | Send AI Assistant usage statistics<\/em>.<\/p>\n<p>Weitere Informationen zu unseren Richtlinien f\u00fcr die Datenerfassung finden Sie auf <a href=\"https:\/\/www.jetbrains.com\/help\/ai\/data-collection-and-use-policy.html\" target=\"_blank\" rel=\"noopener\">unserer Website<\/a>.<\/p>\n<h2 class=\"wp-block-heading\">Feedback geben<\/h2>\n<p>In diesem Entwicklungsstadium ist es f\u00fcr uns \u00e4u\u00dferst wichtig, von Ihnen Feedback zu den neuen Funktionen zu erhalten \u2013 Erfolgsgeschichten, Situationen, in denen die KI nicht wie erwartet gehandelt hat, und Vorschl\u00e4ge f\u00fcr weitere Szenarien, in denen Sie KI-Unterst\u00fctzung gebrauchen k\u00f6nnten. Bitte senden Sie uns Ihre Ideen und Vorschl\u00e4ge, indem Sie im Toolfenster <em>AI Assistant<\/em> auf <em>Share feedback<\/em> klicken, und bitte melden Sie Fehler in Verbindung mit dem AI Assistant in unserem <a href=\"https:\/\/youtrack.jetbrains.com\/issues\/LLM\" target=\"_blank\" rel=\"noopener\">YouTrack-Projekt<\/a>. Danke!<\/p>\n<p><strong>Autor des Original-Blogposts:<\/strong><\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":811,"featured_media":368952,"comment_status":"closed","ping_status":"closed","template":"","categories":[],"tags":[600],"cross-post-tag":[6256],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea\/368937"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/types\/idea"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/users\/811"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/comments?post=368937"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea\/368937\/revisions"}],"predecessor-version":[{"id":373736,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/idea\/368937\/revisions\/373736"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media\/368952"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/media?parent=368937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/categories?post=368937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/tags?post=368937"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/de\/wp-json\/wp\/v2\/cross-post-tag?post=368937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}