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

README.md 7.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <p align="center">
  2. <a href="https://openkf.github.io/website" target="_blank">
  3. <img src="assets/logo-gif/openkf-logo.gif" width="60%" height="30%"/>
  4. </a>
  5. </p>
  6. <h3 align="center" style="border-bottom: none">
  7. ⭐️ OpenKF(Open Knowledge Flow) is an online intelligent customer service system. ⭐️ <br>
  8. <h3>
  9. <p align=center>
  10. <a href="https://goreportcard.com/report/github.com/OpenIMSDK/OpenKF"><img src="https://goreportcard.com/badge/github.com/OpenIMSDK/OpenKF" alt="A+"></a>
  11. <a href="https://github.com/OpenIMSDK/OpenKF/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22"><img src="https://img.shields.io/github/issues/OpenIMSDK/OpenKF/good%20first%20issue?logo=%22github%22" alt="good first"></a>
  12. <a href="https://github.com/OpenIMSDK/OpenKF"><img src="https://img.shields.io/github/stars/OpenIMSDK/OpenKF.svg?style=flat&logo=github&colorB=deeppink&label=stars"></a>
  13. <a href="https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg"><img src="https://img.shields.io/badge/Slack-100%2B-blueviolet?logo=slack&amp;logoColor=white"></a>
  14. <a href="https://github.com/OpenIMSDK/OpenKF/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-green"></a>
  15. <a href="https://golang.org/"><img src="https://img.shields.io/badge/Language-Go-blue.svg"></a>
  16. </p>
  17. </p>
  18. <p align="center">
  19. <a href="./README.md"><b>English</b></a> •
  20. <a href="./README_zh-CN.md"><b>中文</b></a>
  21. </p>
  22. </p>
  23. <br>
  24. ## 🧩 Awesome features
  25. 1. [OpenKF](https://github.com/OpenIMSDK/OpenKF) is an opensource customer service system based on [OpenIM](https://github.com/OpenIMSDK).
  26. 2. Support LLM(Local Knowledgebase) customer service.
  27. 3. Support multi-channel customer service, and easy to integrate with third-party systems.
  28. 4. Easy to deploy and secondary development.
  29. ## 📺 System Preview
  30. - Login
  31. ![Login Page](assets/images/login_page.png)
  32. - Config
  33. ![Config Page](assets/images/config_page.png)
  34. ## 🛫 Quick start
  35. > **Note**: You can get started quickly with OpenKF.
  36. ### 📦 Installation
  37. ```bash
  38. git clone https://github.com/OpenIMSDK/OpenKF openkf && export openkf=$(pwd)/openkf && cd $openkf && make
  39. ```
  40. ### 🚀 Run
  41. > **Note**:
  42. > We need to run the backend server first
  43. ```bash
  44. make build
  45. ```
  46. > open another terminal run the following command
  47. ```bash
  48. # make dev
  49. cd web
  50. npm run dev
  51. ```
  52. ### 📖 Contributors get up to speed
  53. Be good at using Makefile, it can ensure the quality of your project.
  54. ```bash
  55. Usage: make <TARGETS> ...
  56. Targets:
  57. all Build all the necessary targets. 🏗️
  58. build Build binaries by default. 🛠️
  59. go.build Build the binary file of the specified platform. 👨‍💻
  60. build-multiarch Build binaries for multiple platforms. 🌍
  61. tidy tidy go.mod 📦
  62. style Code style -> fmt,vet,lint 🎨
  63. fmt Run go fmt against code. ✨
  64. vet Run go vet against code. 🔍
  65. generate Run go generate against code and docs. ✅
  66. lint Run go lint against code. 🔎
  67. test Run unit test ✔️
  68. cover Run unit test with coverage. 🧪
  69. docker-build Build docker image with the manager. 🐳
  70. docker-push Push docker image with the manager. 🔝
  71. docker-buildx-push Push docker image with the manager using buildx. 🚢
  72. copyright-verify Validate boilerplate headers for assign files. 📄
  73. copyright-add Add the boilerplate headers for all files. 📝
  74. swagger Generate swagger document. 📚
  75. serve-swagger Serve swagger spec and docs. 🌐
  76. clean Clean all builds. 🧹
  77. help Show this help info. ℹ️
  78. ```
  79. > **Note**:
  80. > It's highly recommended that you run `make all` before committing your code. 🚀
  81. ```bash
  82. make all
  83. ```
  84. ## 🕋 Architecture diagram
  85. ![Architecture](assets/images/architecture.png)
  86. **MVC Architecture Design:**
  87. ![MVC](assets/images/mvc.png)
  88. ## 🤖 File Directory Description
  89. Catalog standardization design structure:
  90. ```bash
  91. .
  92. ├── assets
  93. │ └── images
  94. ├── build
  95. ├── deploy
  96. ├── docs
  97. ├── kf_plugins # Local knowledgebase with LLM
  98. │ ├── chat
  99. │ ├── config
  100. │ ├── data
  101. │ ├── logs
  102. │ ├── model
  103. │ └── utils
  104. ├── scripts
  105. │ ├── githooks
  106. │ └── LICENSE
  107. ├── server # OpenKF backend
  108. │ ├── cmd
  109. │ ├── data
  110. │ ├── docs
  111. │ ├── examples
  112. │ ├── internal
  113. │ ├── logs
  114. │ ├── pkg
  115. │ ├── test
  116. │ └── tools
  117. └── web # OpenKF frontend
  118. ├── public
  119. ├── scripts
  120. └── src
  121. ```
  122. ## 🗓️ community meeting
  123. We want anyone to get involved in our community, we offer gifts and rewards, and we welcome you to join us every Thursday night.
  124. Our conference is in the [OpenIM Slack](https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg) 🎯 `openkf` pipeline, then you can search the openkf pipeline to join
  125. We take notes of each [biweekly meeting](https://github.com/orgs/OpenIMSDK/discussions/categories/meeting) in [GitHub discussions](https://github.com/OpenIMSDK/OpenKF/discussions/categories/meeting), and our minutes are written in [Google Docs](https://docs.google.com/document/d/1nx8MDpuG74NASx081JcCpxPgDITNTpIIos0DS6Vr9GU/edit?usp=sharing).
  126. ## 🤼‍ Contributing & Development
  127. OpenIMSDK Our goal is to build a top-level open source community. We have a set of standards, in the [Community repository](https://github.com/OpenIMSDK/community).
  128. If you'd like to contribute to this OpenKF repository, please read our [contributor documentation](https://github.com/OpenIMSDK/OpenKF/blob/main/CONTRIBUTING.md).
  129. Before you start, please make sure your changes are in demand. The best for that is to create a [new discussion](https://github.com/OpenIMSDK/OpenKF/discussions/new/choose) OR [Slack Communication](https://join.slack.com/t/openimsdk/shared_invite/zt-1tmoj26uf-_FDy3dowVHBiGvLk9e5Xkg), or if you find an issue, [report it](https://github.com/OpenIMSDK/OpenKF/issues/new/choose) first.
  130. ## 🚨 License
  131. OpenKF is licensed under the Apache 2.0 license. See [LICENSE](https://github.com/OpenIMSDK/OpenKF/tree/main/LICENSE) for the full license text.
  132. The OpenKF logo, including its variations and animated versions, displayed in this repository [OpenKF](https://github.com/OpenIMSDK/openkf) under the [assets/logo](./assets/logo) and [assets/logo-gif](assets/logo-gif) directories, are protected by copyright laws.
  133. ## 🔮 Thanks to our contributors!
  134. <a href="https://github.com/OpenIMSDK/OpenKF/graphs/contributors">
  135. <img src="https://contrib.rocks/image?repo=OpenIMSDK/OpenKF" />
  136. </a>