Merge branch 'master' of https://github.com/hchen2020/BotSharp
This commit is contained in:
commit
87e18d7d29
50
BotSharp.sln
50
BotSharp.sln
|
|
@ -47,8 +47,6 @@ Global
|
|||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
GPU|Any CPU = GPU|Any CPU
|
||||
GPU|x64 = GPU|x64
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
|
|
@ -57,10 +55,6 @@ Global
|
|||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{197885F1-2EB2-4709-B9AA-A777878D74B3}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -69,10 +63,6 @@ Global
|
|||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Debug|x64.Build.0 = Debug|x64
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|x64.ActiveCfg = Release|x64
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.GPU|x64.Build.0 = Release|x64
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{36F5CEBD-31A8-4BEF-8BAA-BAC4E63E4815}.Release|x64.ActiveCfg = Release|x64
|
||||
|
|
@ -81,10 +71,6 @@ Global
|
|||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{07AD18C5-CE7B-495A-815F-170E93CCC42A}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -93,10 +79,6 @@ Global
|
|||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3EAB9CF3-0F47-4BFB-8BAC-8ADFF24AD899}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -105,10 +87,6 @@ Global
|
|||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{57806BAF-7736-425A-B499-13A2A2DF1E63}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -117,10 +95,6 @@ Global
|
|||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{68C7C9E9-496B-4004-A1F8-75FFB8C06C76}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -129,10 +103,6 @@ Global
|
|||
{2323A7A3-E938-488D-A57E-638638054BC4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2323A7A3-E938-488D-A57E-638638054BC4}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -141,10 +111,6 @@ Global
|
|||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0B6E1D7F-ABDE-47F6-8B2D-4483C2CFF2D6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -153,10 +119,6 @@ Global
|
|||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{6D8D18A9-86D7-455E-81EC-9682C30AB7E7}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -165,10 +127,6 @@ Global
|
|||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|Any CPU.Build.0 = Release|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|x64.ActiveCfg = Release|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.GPU|x64.Build.0 = Release|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{FE2E6CC1-EB80-4518-B3A3-CB373EDA6A83}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -177,10 +135,6 @@ Global
|
|||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.GPU|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.GPU|Any CPU.Build.0 = Debug|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.GPU|x64.ActiveCfg = Debug|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.GPU|x64.Build.0 = Debug|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{0308FBFD-57EB-4709-9AE4-A80D516AD84D}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
@ -189,10 +143,6 @@ Global
|
|||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.GPU|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.GPU|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.GPU|x64.ActiveCfg = Debug|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.GPU|x64.Build.0 = Debug|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8300F66D-9EB8-438A-BF0F-70DFBE07D9DE}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
|
|
|
|||
1
docs/architecture/data_storage.md
Normal file
1
docs/architecture/data_storage.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
# Data Storage
|
||||
|
|
@ -64,9 +64,9 @@ author = 'Haiping Chen'
|
|||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.8'
|
||||
version = '0.9'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '0.8.0'
|
||||
release = '0.9.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
Database Settings
|
||||
=================
|
||||
|
||||
::
|
||||
|
||||
"Redis": "127.0.0.1:6379,defaultDatabase=BotSharp,poolsize=50,ssl=false,writeBuffer=10240,prefix=agent_"
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
Platform Settings
|
||||
=================
|
||||
|
||||
* app.json
|
||||
|
||||
::
|
||||
|
||||
"Assemblies": "BotSharp.Core"
|
||||
|
||||
|
||||
|
||||
* BotSharpAi.json
|
||||
|
||||
::
|
||||
|
||||
"Pipe": "BotSharpTokenizer, BotSharpTagger, BotSharpCRFNer, BotSharpIntentClassifier"
|
||||
|
|
@ -66,18 +66,27 @@ The main documentation for the site is organized into the following sections:
|
|||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:caption: Channels Integration Documentation:
|
||||
:caption: Channels Integration
|
||||
|
||||
integrations/facebook-messenger
|
||||
|
||||
.. _knowledge-base:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:caption: Knowledge Base
|
||||
|
||||
knowledge-base/text-embedding
|
||||
knowledge-base/vector-database
|
||||
knowledge-base/similarity-search
|
||||
|
||||
.. _architecture-docs:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
:caption: Architecture Documentation:
|
||||
:caption: Architecture:
|
||||
|
||||
configuration/db
|
||||
configuration/platform
|
||||
architecture/data_storage
|
||||
|
||||
If you feel that this project is helpful to you, please Star us on the project, we will be very grateful.
|
||||
|
||||
|
|
|
|||
BIN
docs/knowledge-base/assets/feed_knowledge_answer.png
Normal file
BIN
docs/knowledge-base/assets/feed_knowledge_answer.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
BIN
docs/knowledge-base/assets/feed_knowledge_pdf.png
Normal file
BIN
docs/knowledge-base/assets/feed_knowledge_pdf.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 114 KiB |
17
docs/knowledge-base/similarity-search.md
Normal file
17
docs/knowledge-base/similarity-search.md
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
# Similarity Search
|
||||
|
||||
After we have learned the concepts of `Text Embedding` and `Vector Database`, we can start to use BotSharp to actually build an LLM-based knowledge base question system.
|
||||
Below we will walk through how to use an existing PDF document to make a Q&A chatbot.
|
||||
|
||||
## Feed knowledge
|
||||
|
||||
Use the feed knowledge interface to feed knowledge into the database. Before that, you need to create an Agent to manage the Chatbot, and the Agent's `id` is needed in subsequent operations.
|
||||
`http://localhost:5500/knowledge/{agentId}`, You can add `startPageNum` and `endPageNum` to select useful parts of the document.
|
||||
|
||||

|
||||
|
||||
## Retrieve knowledge
|
||||
|
||||
After you have finished inputting knowledge, you can start asking related questions with your AI Assistant.
|
||||
|
||||

|
||||
59
docs/knowledge-base/text-embedding.md
Normal file
59
docs/knowledge-base/text-embedding.md
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# Text Embedding
|
||||
|
||||
Text embeddings represent human language to computers, enabling tasks like semantic search. `BotSharp` supports a variety of Embedding methods, and supports the extension of more Embedding methods through engineering abstraction.
|
||||
|
||||
## fastText embedding
|
||||
[FastText](https://fasttext.cc/) is an open-source, free, lightweight library that allows users to learn text representations and text classifiers. It works on standard, generic hardware. Models can later be reduced in size to even fit on mobile devices. In order to use the fastText embedding method, please make sure to install [BotSharp.Plugin.MetaAI](https://www.nuget.org/packages/BotSharp.Plugin.MetaAI), and enable this plugin in your local settings. It is also necessary to [download](https://fasttext.cc/docs/en/english-vectors.html) the pre-trained model of fastText and specify the location of the model in the settings.
|
||||
|
||||
```json
|
||||
"PluginLoader": {
|
||||
"Assemblies": [
|
||||
"BotSharp.Plugin.MetaAI"
|
||||
],
|
||||
"Plugins": [
|
||||
"KnowledgeBasePlugin",
|
||||
"MemVecDbPlugin",
|
||||
"MetaAiPlugin"
|
||||
]
|
||||
},
|
||||
|
||||
"KnowledgeBase": {
|
||||
"TextEmbedding": "fastTextEmbeddingProvider"
|
||||
},
|
||||
|
||||
"MetaAi": {
|
||||
"fastText": {
|
||||
"ModelPath": "crawl-300d-2M-subword.bin"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## LLamaSharp.TextEmbeddingProvider
|
||||
`LLamaSharp` also provides an LLM embedding. For more operation methods of LLamaSharp, please refer to its [repo address](https://github.com/SciSharp/LLamaSharp) .
|
||||
You need to download the corresponding LLM open source model like `llama2` to the local.
|
||||
|
||||
```json
|
||||
"PluginLoader": {
|
||||
"Assemblies": [
|
||||
"BotSharp.Core"
|
||||
],
|
||||
"Plugins": [
|
||||
"KnowledgeBasePlugin",
|
||||
"MemVecDbPlugin",
|
||||
"LLamaSharpPlugin"
|
||||
]
|
||||
},
|
||||
|
||||
"KnowledgeBase": {
|
||||
"TextEmbedding": "LLamaSharp.TextEmbeddingProvider"
|
||||
},
|
||||
|
||||
"LlamaSharp": {
|
||||
"ModelPath": "llama-2-7b-chat.ggmlv3.q3_K_S.bin"
|
||||
}
|
||||
```
|
||||
|
||||
## TensorFlow BERT
|
||||
|
||||
## Train your own embedding
|
||||
You can also train an embedding model yourself from scratch using [TensorFlow.NET](https://github.com/SciSharp/TensorFlow.NET).
|
||||
6
docs/knowledge-base/vector-database.md
Normal file
6
docs/knowledge-base/vector-database.md
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
# Vector Database
|
||||
|
||||
In order to use your own private data to build a knowledge base question answering system, you must first convert your documents into plain text, and then embed the text into the Vector database for indexing to improve subsequent search efficiency.
|
||||
|
||||
## Memory vector datbase
|
||||
`MemVecDb` is a lightweight memory vector database provided by BotSharp for rapid development and testing. It is not recommended to be used in the actual production environment.
|
||||
|
|
@ -19,9 +19,33 @@ public class ChatCompletionProvider : IChatCompletion
|
|||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public Task<bool> GetChatCompletionsAsync(Agent agent, List<RoleDialogModel> conversations, Func<RoleDialogModel, Task> onMessageReceived)
|
||||
public async Task<bool> GetChatCompletionsAsync(Agent agent, List<RoleDialogModel> conversations, Func<RoleDialogModel, Task> onMessageReceived)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var content = string.Join("\n", conversations.Select(x => $"{x.Role}: {x.Content.Replace("user:", "User:")}")).Trim();
|
||||
content += "\nBob: ";
|
||||
|
||||
var llama = _services.GetRequiredService<LlamaAiModel>();
|
||||
llama.LoadModel();
|
||||
var executor = new StatelessExecutor(llama.Model);
|
||||
var inferenceParams = new InferenceParams()
|
||||
{
|
||||
Temperature = 1.0f,
|
||||
AntiPrompts = new List<string> { "User:" },
|
||||
MaxTokens = 256
|
||||
};
|
||||
|
||||
string totalResponse = "";
|
||||
|
||||
var prompt = agent.Instruction + content;
|
||||
await foreach (var response in executor.InferAsync(prompt, inferenceParams))
|
||||
{
|
||||
Console.Write(response);
|
||||
totalResponse += response;
|
||||
}
|
||||
|
||||
await onMessageReceived(new RoleDialogModel("assistant", totalResponse));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public async Task<bool> GetChatCompletionsStreamingAsync(Agent agent, List<RoleDialogModel> conversations, Func<RoleDialogModel, Task> onMessageReceived)
|
||||
|
|
|
|||
Loading…
Reference in a new issue