You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CONTRIBUTING_DE.md 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. # MITWIRKEN
  2. So, du möchtest zu Dify beitragen – das ist großartig, wir können es kaum erwarten, zu sehen, was du beisteuern wirst. Als ein Startup mit begrenzter Mitarbeiterzahl und Finanzierung haben wir große Ambitionen, den intuitivsten Workflow zum Aufbau und zur Verwaltung von LLM-Anwendungen zu entwickeln. Jede Unterstützung aus der Community zählt wirklich.
  3. Dieser Leitfaden, ebenso wie Dify selbst, ist ein ständig in Entwicklung befindliches Projekt. Wir schätzen Ihr Verständnis, falls er zeitweise hinter dem tatsächlichen Projekt zurückbleibt, und freuen uns über jegliches Feedback, das uns hilft, ihn zu verbessern.
  4. Bezüglich der Lizenzierung nehmen Sie sich bitte einen Moment Zeit, um unser kurzes [License and Contributor Agreement](./LICENSE) zu lesen. Die Community hält sich außerdem an den [Code of Conduct](https://github.com/langgenius/.github/blob/main/CODE_OF_CONDUCT.md).
  5. ## Bevor Sie loslegen
  6. [Finde](https://github.com/langgenius/dify/issues?q=is:issue+is:open) ein bestehendes Issue, oder [öffne](https://github.com/langgenius/dify/issues/new/choose) ein neues. Wir kategorisieren Issues in zwei Typen:
  7. ### Feature-Anfragen
  8. * Wenn Sie eine neue Feature-Anfrage stellen, bitten wir Sie zu erklären, was das vorgeschlagene Feature bewirken soll und so viel Kontext wie möglich bereitzustellen. [@perzeusss](https://github.com/perzeuss) hat einen soliden [Feature Request Copilot](https://udify.app/chat/MK2kVSnw1gakVwMX) entwickelt, der Ihnen dabei hilft, Ihre Anforderungen zu formulieren. Probieren Sie ihn gerne aus.
  9. * Wenn Sie eines der bestehenden Issues übernehmen möchten, hinterlassen Sie einfach einen Kommentar darunter, in dem Sie uns dies mitteilen.
  10. Ein Teammitglied, das in der entsprechenden Richtung arbeitet, wird hinzugezogen. Wenn alles in Ordnung ist, gibt es das Okay, mit der Codierung zu beginnen. Wir bitten Sie, mit der Umsetzung des Features zu warten, damit keine Ihrer Arbeiten verloren gehen sollte unsererseits Änderungen vorgeschlagen werden.
  11. Je nachdem, in welchen Bereich das vorgeschlagene Feature fällt, können Sie mit verschiedenen Teammitgliedern sprechen. Hier ist eine Übersicht der Bereiche, an denen unsere Teammitglieder derzeit arbeiten:
  12. | Member | Scope |
  13. | ------------------------------------------------------------ | ---------------------------------------------------- |
  14. | [@yeuoly](https://github.com/Yeuoly) | Architecting Agents |
  15. | [@jyong](https://github.com/JohnJyong) | RAG pipeline design |
  16. | [@GarfieldDai](https://github.com/GarfieldDai) | Building workflow orchestrations |
  17. | [@iamjoel](https://github.com/iamjoel) & [@zxhlyh](https://github.com/zxhlyh) | Making our frontend a breeze to use |
  18. | [@guchenhe](https://github.com/guchenhe) & [@crazywoola](https://github.com/crazywoola) | Developer experience, points of contact for anything |
  19. | [@takatost](https://github.com/takatost) | Overall product direction and architecture |
  20. Wie wir Prioritäten setzen:
  21. | Feature Type | Priority |
  22. | ------------------------------------------------------------ | --------------- |
  23. | Funktionen mit hoher Priorität, wie sie von einem Teammitglied gekennzeichnet wurden | High Priority |
  24. | Beliebte Funktionsanfragen von unserem [Community-Feedback-Board](https://github.com/langgenius/dify/discussions/categories/feedbacks) | Medium Priority |
  25. | Nicht-Kernfunktionen und kleinere Verbesserungen | Low Priority |
  26. | Wertvoll, aber nicht unmittelbar | Future-Feature |
  27. ### Sonstiges (e.g. bug report, performance optimization, typo correction)
  28. * Fangen Sie sofort an zu programmieren..
  29. Wie wir Prioritäten setzen:
  30. | Issue Type | Priority |
  31. | ------------------------------------------------------------ | --------------- |
  32. | Fehler in Kernfunktionen (Anmeldung nicht möglich, Anwendungen funktionieren nicht, Sicherheitslücken) | Critical |
  33. | Nicht-kritische Fehler, Leistungsverbesserungen | Medium Priority |
  34. | Kleinere Fehlerkorrekturen (Schreibfehler, verwirrende, aber funktionierende Benutzeroberfläche) | Low Priority |
  35. ## Installieren
  36. Hier sind die Schritte, um Dify für die Entwicklung einzurichten:
  37. ### 1. Fork dieses Repository
  38. ### 2. Clone das Repo
  39. Klonen Sie das geforkte Repository von Ihrem Terminal aus:
  40. ```shell
  41. git clone git@github.com:<github_username>/dify.git
  42. ```
  43. ### 3. Abhängigkeiten prüfen
  44. Dify benötigt die folgenden Abhängigkeiten zum Bauen – stellen Sie sicher, dass sie auf Ihrem System installiert sind:
  45. * [Docker](https://www.docker.com/)
  46. * [Docker Compose](https://docs.docker.com/compose/install/)
  47. * [Node.js v18.x (LTS)](http://nodejs.org)
  48. * [pnpm](https://pnpm.io/)
  49. * [Python](https://www.python.org/) version 3.11.x or 3.12.x
  50. ### 4. Installationen
  51. Dify setzt sich aus einem Backend und einem Frontend zusammen. Wechseln Sie in das Backend-Verzeichnis mit `cd api/` und folgen Sie der [Backend README](api/README.md) zur Installation. Öffnen Sie in einem separaten Terminal das Frontend-Verzeichnis mit `cd web/` und folgen Sie der [Frontend README](web/README.md) zur Installation.
  52. Überprüfen Sie die [Installation FAQ](https://docs.dify.ai/learn-more/faq/install-faq) für eine Liste bekannter Probleme und Schritte zur Fehlerbehebung.
  53. ### 5. Besuchen Sie dify in Ihrem Browser
  54. Um Ihre Einrichtung zu validieren, öffnen Sie Ihren Browser und navigieren Sie zu [http://localhost:3000](http://localhost:3000) (Standardwert oder Ihre selbst konfigurierte URL und Port). Sie sollten nun Dify im laufenden Betrieb sehen.
  55. ## Entwickeln
  56. Wenn Sie einen Modellanbieter hinzufügen, ist [dieser Leitfaden](https://github.com/langgenius/dify/blob/main/api/core/model_runtime/README.md) für Sie.
  57. Wenn Sie einen Tool-Anbieter für Agent oder Workflow hinzufügen möchten, ist [dieser Leitfaden](./api/core/tools/README.md) für Sie.
  58. Um Ihnen eine schnelle Orientierung zu bieten, wo Ihr Beitrag passt, folgt eine kurze, kommentierte Übersicht des Backends und Frontends von Dify:
  59. ### Backend
  60. Dify’s Backend ist in Python geschrieben und nutzt [Flask](https://flask.palletsprojects.com/en/3.0.x/) als Web-Framework. Es verwendet [SQLAlchemy](https://www.sqlalchemy.org/) für ORM und [Celery](https://docs.celeryq.dev/en/stable/getting-started/introduction.html) für Task-Queueing. Die Autorisierungslogik erfolgt über Flask-login.
  61. ```text
  62. [api/]
  63. ├── constants // Konstante Einstellungen, die in der gesamten Codebasis verwendet werden.
  64. ├── controllers // API-Routendefinitionen und Logik zur Bearbeitung von Anfragen.
  65. ├── core // Orchestrierung von Kernanwendungen, Modellintegrationen und Tools.
  66. ├── docker // Konfigurationen im Zusammenhang mit Docker und Containerisierung.
  67. ├── events // Ereignisbehandlung und -verarbeitung
  68. ├── extensions // Erweiterungen mit Frameworks/Plattformen von Drittanbietern.
  69. ├── fields // Felddefinitionen für die Serialisierung/Marshalling.
  70. ├── libs // Wiederverwendbare Bibliotheken und Hilfsprogramme
  71. ├── migrations // Skripte für die Datenbankmigration.
  72. ├── models // Datenbankmodelle und Schemadefinitionen.
  73. ├── services // Gibt die Geschäftslogik an.
  74. ├── storage // Speicherung privater Schlüssel.
  75. ├── tasks // Handhabung von asynchronen Aufgaben und Hintergrundaufträgen.
  76. └── tests
  77. ```
  78. ### Frontend
  79. Die Website basiert auf einem [Next.js](https://nextjs.org/)-Boilerplate in TypeScript und verwendet [Tailwind CSS](https://tailwindcss.com/) für das Styling. [React-i18next](https://react.i18next.com/) wird für die Internationalisierung genutzt.
  80. ```text
  81. [web/]
  82. ├── app // Layouts, Seiten und Komponenten
  83. │ ├── (commonLayout) // gemeinsames Layout für die gesamte Anwendung
  84. │ ├── (shareLayout) // Layouts, die speziell für tokenspezifische Sitzungen gemeinsam genutzt werden
  85. │ ├── activate // Seite aufrufen
  86. │ ├── components // gemeinsam genutzt von Seiten und Layouts
  87. │ ├── install // Seite installieren
  88. │ ├── signin // Anmeldeseite
  89. │ └── styles // global geteilte Stile
  90. ├── assets // Statische Vermögenswerte
  91. ├── bin // Skripte, die beim Build-Schritt ausgeführt werden
  92. ├── config // einstellbare Einstellungen und Optionen
  93. ├── context // gemeinsame Kontexte, die von verschiedenen Teilen der Anwendung verwendet werden
  94. ├── dictionaries // Sprachspezifische Übersetzungsdateien
  95. ├── docker // Container-Konfigurationen
  96. ├── hooks // Wiederverwendbare Haken
  97. ├── i18n // Konfiguration der Internationalisierung
  98. ├── models // beschreibt Datenmodelle und Formen von API-Antworten
  99. ├── public // Meta-Assets wie Favicon
  100. ├── service // legt Formen von API-Aktionen fest
  101. ├── test
  102. ├── types // Beschreibungen von Funktionsparametern und Rückgabewerten
  103. └── utils // Gemeinsame Nutzenfunktionen
  104. ```
  105. ## Einreichung Ihrer PR
  106. Am Ende ist es Zeit, einen Pull Request (PR) in unserem Repository zu eröffnen. Für wesentliche Features mergen wir diese zunächst in den `deploy/dev`-Branch zum Testen, bevor sie in den `main`-Branch übernommen werden. Falls Sie auf Probleme wie Merge-Konflikte stoßen oder nicht wissen, wie man einen Pull Request erstellt, schauen Sie sich [GitHub's Pull Request Tutorial](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests) an.
  107. Und das war's! Sobald Ihr PR gemerged wurde, werden Sie als Mitwirkender in unserem [README](https://github.com/langgenius/dify/blob/main/README.md) aufgeführt.
  108. ## Hilfe bekommen
  109. Wenn Sie beim Beitragen jemals nicht weiter wissen oder eine brennende Frage haben, richten Sie Ihre Anfrage einfach über das entsprechende GitHub-Issue an uns oder besuchen Sie unseren [Discord](https://discord.gg/8Tpq4AcN9c) für ein kurzes Gespräch.