From 545c3232161b11a1e6dfccaa3bb393718a745bc5 Mon Sep 17 00:00:00 2001 From: ykgong Date: Fri, 9 Jun 2023 11:35:06 +0800 Subject: [PATCH 01/18] add gpt4all --- pilot/configs/model_config.py | 1 + pilot/model/adapter.py | 23 +++++++++++++++++------ pilot/model/llm_out/gpt4all_llm.py | 17 +++++++++++++++++ pilot/out_parser/base.py | 2 +- pilot/server/chat_adapter.py | 15 ++++++++++++--- pilot/server/llmserver.py | 5 +++-- 6 files changed, 51 insertions(+), 12 deletions(-) create mode 100644 pilot/model/llm_out/gpt4all_llm.py diff --git a/pilot/configs/model_config.py b/pilot/configs/model_config.py index 36d615043..b85fe6b7b 100644 --- a/pilot/configs/model_config.py +++ b/pilot/configs/model_config.py @@ -37,6 +37,7 @@ LLM_MODEL_CONFIG = { "guanaco-33b-merged": os.path.join(MODEL_PATH, "guanaco-33b-merged"), "falcon-40b": os.path.join(MODEL_PATH, "falcon-40b"), "gorilla-7b": os.path.join(MODEL_PATH, "gorilla-7b"), + "ggml-gpt4all-j-v1.3-groovy": os.path.join(MODEL_PATH, "ggml-gpt4all-j-v1.3-groovy.bin"), "proxyllm": "proxyllm", } diff --git a/pilot/model/adapter.py b/pilot/model/adapter.py index 7892e4b1b..89ea55ec2 100644 --- a/pilot/model/adapter.py +++ b/pilot/model/adapter.py @@ -2,6 +2,8 @@ # -*- coding: utf-8 -*- import torch +import os +from functools import cache from typing import List from functools import cache from transformers import ( @@ -92,8 +94,8 @@ class ChatGLMAdapater(BaseLLMAdaper): AutoModel.from_pretrained( model_path, trust_remote_code=True, **from_pretrained_kwargs ) - .half() - .cuda() + .half() + .cuda() ) return model, tokenizer @@ -185,18 +187,26 @@ class RWKV4LLMAdapter(BaseLLMAdaper): class GPT4AllAdapter(BaseLLMAdaper): - """A light version for someone who want practise LLM use laptop.""" + """ + A light version for someone who want practise LLM use laptop. + All model names see: https://gpt4all.io/models/models.json + """ def match(self, model_path: str): return "gpt4all" in model_path def loader(self, model_path: str, from_pretrained_kwargs: dict): - # TODO - pass + import gpt4all + + if model_path is None and from_pretrained_kwargs.get('model_name') is None: + model = gpt4all.GPT4All("ggml-gpt4all-j-v1.3-groovy") + else: + path, file = os.path.split(model_path) + model = gpt4all.GPT4All(model_path=path, model_name=file) + return model, None class ProxyllmAdapter(BaseLLMAdaper): - """The model adapter for local proxy""" def match(self, model_path: str): @@ -211,6 +221,7 @@ register_llm_model_adapters(ChatGLMAdapater) register_llm_model_adapters(GuanacoAdapter) register_llm_model_adapters(FalconAdapater) register_llm_model_adapters(GorillaAdapter) +register_llm_model_adapters(GPT4AllAdapter) # TODO Default support vicuna, other model need to tests and Evaluate # just for test, remove this later diff --git a/pilot/model/llm_out/gpt4all_llm.py b/pilot/model/llm_out/gpt4all_llm.py new file mode 100644 index 000000000..4cc1f067f --- /dev/null +++ b/pilot/model/llm_out/gpt4all_llm.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 +# -*- coding:utf-8 -*- + +def gpt4all_generate_stream(model, tokenizer, params, device, max_position_embeddings): + stop = params.get("stop", "###") + prompt = params["prompt"] + role, query = prompt.split(stop)[1].split(":") + print(f"gpt4all, role: {role}, query: {query}") + + messages = [{"role": "user", "content": query}] + res = model.chat_completion(messages) + if res.get('choices') and len(res.get('choices')) > 0 and res.get('choices')[0].get('message') and \ + res.get('choices')[0].get('message').get('content'): + yield res.get('choices')[0].get('message').get('content') + else: + yield "error response" + diff --git a/pilot/out_parser/base.py b/pilot/out_parser/base.py index 513c1d300..6f08d93fe 100644 --- a/pilot/out_parser/base.py +++ b/pilot/out_parser/base.py @@ -51,7 +51,7 @@ class BaseOutputParser(ABC): """ TODO Multi mode output handler, rewrite this for multi model, use adapter mode. """ - if data["error_code"] == 0: + if data.get('error_code', 0) == 0: if "vicuna" in CFG.LLM_MODEL: # output = data["text"][skip_echo_len + 11:].strip() output = data["text"][skip_echo_len:].strip() diff --git a/pilot/server/chat_adapter.py b/pilot/server/chat_adapter.py index e4f57cf46..3598b16b3 100644 --- a/pilot/server/chat_adapter.py +++ b/pilot/server/chat_adapter.py @@ -37,7 +37,6 @@ def get_llm_chat_adapter(model_path: str) -> BaseChatAdpter: class VicunaChatAdapter(BaseChatAdpter): - """Model chat Adapter for vicuna""" def match(self, model_path: str): @@ -60,7 +59,6 @@ class ChatGLMChatAdapter(BaseChatAdpter): class CodeT5ChatAdapter(BaseChatAdpter): - """Model chat adapter for CodeT5""" def match(self, model_path: str): @@ -72,7 +70,6 @@ class CodeT5ChatAdapter(BaseChatAdpter): class CodeGenChatAdapter(BaseChatAdpter): - """Model chat adapter for CodeGen""" def match(self, model_path: str): @@ -127,11 +124,23 @@ class GorillaChatAdapter(BaseChatAdpter): return generate_stream +class GPT4AllChatAdapter(BaseChatAdpter): + + def match(self, model_path: str): + return "gpt4all" in model_path + + def get_generate_stream_func(self): + from pilot.model.llm_out.gpt4all_llm import gpt4all_generate_stream + + return gpt4all_generate_stream + + register_llm_model_chat_adapter(VicunaChatAdapter) register_llm_model_chat_adapter(ChatGLMChatAdapter) register_llm_model_chat_adapter(GuanacoChatAdapter) register_llm_model_chat_adapter(FalconChatAdapter) register_llm_model_chat_adapter(GorillaChatAdapter) +register_llm_model_chat_adapter(GPT4AllChatAdapter) # Proxy model for test and develop, it's cheap for us now. register_llm_model_chat_adapter(ProxyllmChatAdapter) diff --git a/pilot/server/llmserver.py b/pilot/server/llmserver.py index d2730e0d5..e71872d64 100644 --- a/pilot/server/llmserver.py +++ b/pilot/server/llmserver.py @@ -39,9 +39,9 @@ class ModelWorker: ) if not isinstance(self.model, str): - if hasattr(self.model.config, "max_sequence_length"): + if hasattr(self.model, "config") and hasattr(self.model.config, "max_sequence_length"): self.context_len = self.model.config.max_sequence_length - elif hasattr(self.model.config, "max_position_embeddings"): + elif hasattr(self.model, "config") and hasattr(self.model.config, "max_position_embeddings"): self.context_len = self.model.config.max_position_embeddings else: @@ -66,6 +66,7 @@ class ModelWorker: def generate_stream_gate(self, params): try: + print(f"llmserver params: {params}, self: {self}") for output in self.generate_stream_func( self.model, self.tokenizer, params, DEVICE, CFG.MAX_POSITION_EMBEDDINGS ): From cacab625cf1b3ea09f83233816d7dd996a24919a Mon Sep 17 00:00:00 2001 From: ykgong Date: Fri, 9 Jun 2023 11:39:51 +0800 Subject: [PATCH 02/18] rm log --- pilot/model/adapter.py | 1 - pilot/server/llmserver.py | 1 - 2 files changed, 2 deletions(-) diff --git a/pilot/model/adapter.py b/pilot/model/adapter.py index 89ea55ec2..435be1142 100644 --- a/pilot/model/adapter.py +++ b/pilot/model/adapter.py @@ -3,7 +3,6 @@ import torch import os -from functools import cache from typing import List from functools import cache from transformers import ( diff --git a/pilot/server/llmserver.py b/pilot/server/llmserver.py index e71872d64..ad4627afa 100644 --- a/pilot/server/llmserver.py +++ b/pilot/server/llmserver.py @@ -66,7 +66,6 @@ class ModelWorker: def generate_stream_gate(self, params): try: - print(f"llmserver params: {params}, self: {self}") for output in self.generate_stream_func( self.model, self.tokenizer, params, DEVICE, CFG.MAX_POSITION_EMBEDDINGS ): From 7136aa748dce63c2f1235d9606c2686d0437cc0f Mon Sep 17 00:00:00 2001 From: ykgong Date: Fri, 9 Jun 2023 13:57:47 +0800 Subject: [PATCH 03/18] fix model key --- pilot/configs/model_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pilot/configs/model_config.py b/pilot/configs/model_config.py index b85fe6b7b..851a0486d 100644 --- a/pilot/configs/model_config.py +++ b/pilot/configs/model_config.py @@ -37,7 +37,7 @@ LLM_MODEL_CONFIG = { "guanaco-33b-merged": os.path.join(MODEL_PATH, "guanaco-33b-merged"), "falcon-40b": os.path.join(MODEL_PATH, "falcon-40b"), "gorilla-7b": os.path.join(MODEL_PATH, "gorilla-7b"), - "ggml-gpt4all-j-v1.3-groovy": os.path.join(MODEL_PATH, "ggml-gpt4all-j-v1.3-groovy.bin"), + "gptj-6b": os.path.join(MODEL_PATH, "ggml-gpt4all-j-v1.3-groovy.bin"), "proxyllm": "proxyllm", } From fc4fd6aa773df80d4234629156d2ad3750851024 Mon Sep 17 00:00:00 2001 From: ykgong Date: Fri, 9 Jun 2023 14:05:49 +0800 Subject: [PATCH 04/18] requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 9238751ca..c6434c3ab 100644 --- a/requirements.txt +++ b/requirements.txt @@ -49,6 +49,7 @@ llama-index==0.5.27 pymysql unstructured==0.6.3 grpcio==1.47.5 +gpt4all==0.3.0 auto-gpt-plugin-template pymdown-extensions From a88e8aa51bf27bf5540655d73bd579cf7cfae7bd Mon Sep 17 00:00:00 2001 From: sheri528 Date: Tue, 13 Jun 2023 14:11:23 +0800 Subject: [PATCH 05/18] update stream output --- pilot/model/adapter.py | 6 +++--- pilot/model/llm_out/gpt4all_llm.py | 20 +++++++++++++------- pilot/out_parser/base.py | 2 +- pilot/server/chat_adapter.py | 1 - pilot/server/llmserver.py | 11 ++++++++--- 5 files changed, 25 insertions(+), 15 deletions(-) diff --git a/pilot/model/adapter.py b/pilot/model/adapter.py index 435be1142..407d11127 100644 --- a/pilot/model/adapter.py +++ b/pilot/model/adapter.py @@ -187,8 +187,8 @@ class RWKV4LLMAdapter(BaseLLMAdaper): class GPT4AllAdapter(BaseLLMAdaper): """ - A light version for someone who want practise LLM use laptop. - All model names see: https://gpt4all.io/models/models.json + A light version for someone who want practise LLM use laptop. + All model names see: https://gpt4all.io/models/models.json """ def match(self, model_path: str): @@ -197,7 +197,7 @@ class GPT4AllAdapter(BaseLLMAdaper): def loader(self, model_path: str, from_pretrained_kwargs: dict): import gpt4all - if model_path is None and from_pretrained_kwargs.get('model_name') is None: + if model_path is None and from_pretrained_kwargs.get("model_name") is None: model = gpt4all.GPT4All("ggml-gpt4all-j-v1.3-groovy") else: path, file = os.path.split(model_path) diff --git a/pilot/model/llm_out/gpt4all_llm.py b/pilot/model/llm_out/gpt4all_llm.py index 4cc1f067f..5ea72f911 100644 --- a/pilot/model/llm_out/gpt4all_llm.py +++ b/pilot/model/llm_out/gpt4all_llm.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 # -*- coding:utf-8 -*- +import threading +import sys +import time + def gpt4all_generate_stream(model, tokenizer, params, device, max_position_embeddings): stop = params.get("stop", "###") @@ -7,11 +11,13 @@ def gpt4all_generate_stream(model, tokenizer, params, device, max_position_embed role, query = prompt.split(stop)[1].split(":") print(f"gpt4all, role: {role}, query: {query}") - messages = [{"role": "user", "content": query}] - res = model.chat_completion(messages) - if res.get('choices') and len(res.get('choices')) > 0 and res.get('choices')[0].get('message') and \ - res.get('choices')[0].get('message').get('content'): - yield res.get('choices')[0].get('message').get('content') - else: - yield "error response" + def worker(): + model.generate(prompt=query, streaming=True) + t = threading.Thread(target=worker) + t.start() + + while t.is_alive(): + yield sys.stdout.output + time.sleep(0.1) + t.join() diff --git a/pilot/out_parser/base.py b/pilot/out_parser/base.py index 6f08d93fe..6406f30dd 100644 --- a/pilot/out_parser/base.py +++ b/pilot/out_parser/base.py @@ -51,7 +51,7 @@ class BaseOutputParser(ABC): """ TODO Multi mode output handler, rewrite this for multi model, use adapter mode. """ - if data.get('error_code', 0) == 0: + if data.get("error_code", 0) == 0: if "vicuna" in CFG.LLM_MODEL: # output = data["text"][skip_echo_len + 11:].strip() output = data["text"][skip_echo_len:].strip() diff --git a/pilot/server/chat_adapter.py b/pilot/server/chat_adapter.py index 3598b16b3..ebab2d2d4 100644 --- a/pilot/server/chat_adapter.py +++ b/pilot/server/chat_adapter.py @@ -125,7 +125,6 @@ class GorillaChatAdapter(BaseChatAdpter): class GPT4AllChatAdapter(BaseChatAdpter): - def match(self, model_path: str): return "gpt4all" in model_path diff --git a/pilot/server/llmserver.py b/pilot/server/llmserver.py index ad4627afa..66180a406 100644 --- a/pilot/server/llmserver.py +++ b/pilot/server/llmserver.py @@ -39,9 +39,13 @@ class ModelWorker: ) if not isinstance(self.model, str): - if hasattr(self.model, "config") and hasattr(self.model.config, "max_sequence_length"): + if hasattr(self.model, "config") and hasattr( + self.model.config, "max_sequence_length" + ): self.context_len = self.model.config.max_sequence_length - elif hasattr(self.model, "config") and hasattr(self.model.config, "max_position_embeddings"): + elif hasattr(self.model, "config") and hasattr( + self.model.config, "max_position_embeddings" + ): self.context_len = self.model.config.max_position_embeddings else: @@ -69,7 +73,8 @@ class ModelWorker: for output in self.generate_stream_func( self.model, self.tokenizer, params, DEVICE, CFG.MAX_POSITION_EMBEDDINGS ): - print("output: ", output) + # 生产请不要打开输出!gpt4all线程与父进程共享stdout, 打开会影响前端输出 + # print("output: ", output) ret = { "text": output, "error_code": 0, From 5da4b38964c8662f61e2e409cf1476ae4839d346 Mon Sep 17 00:00:00 2001 From: sheri528 Date: Tue, 13 Jun 2023 14:22:55 +0800 Subject: [PATCH 06/18] format code --- pilot/model/adapter.py | 4 ++-- pilot/server/llmserver.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pilot/model/adapter.py b/pilot/model/adapter.py index 407d11127..01d05837b 100644 --- a/pilot/model/adapter.py +++ b/pilot/model/adapter.py @@ -93,8 +93,8 @@ class ChatGLMAdapater(BaseLLMAdaper): AutoModel.from_pretrained( model_path, trust_remote_code=True, **from_pretrained_kwargs ) - .half() - .cuda() + .half() + .cuda() ) return model, tokenizer diff --git a/pilot/server/llmserver.py b/pilot/server/llmserver.py index 66180a406..30653a16e 100644 --- a/pilot/server/llmserver.py +++ b/pilot/server/llmserver.py @@ -73,7 +73,9 @@ class ModelWorker: for output in self.generate_stream_func( self.model, self.tokenizer, params, DEVICE, CFG.MAX_POSITION_EMBEDDINGS ): - # 生产请不要打开输出!gpt4all线程与父进程共享stdout, 打开会影响前端输出 + # Please do not open the output in production! + # The gpt4all thread shares stdout with the parent process, + # and opening it may affect the frontend output. # print("output: ", output) ret = { "text": output, From cc3c2d779936e471ca76e85424c0754cd040c90f Mon Sep 17 00:00:00 2001 From: sheri528 Date: Tue, 13 Jun 2023 14:35:14 +0800 Subject: [PATCH 07/18] update sleep interval --- pilot/model/llm_out/gpt4all_llm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pilot/model/llm_out/gpt4all_llm.py b/pilot/model/llm_out/gpt4all_llm.py index 5ea72f911..7a39a8012 100644 --- a/pilot/model/llm_out/gpt4all_llm.py +++ b/pilot/model/llm_out/gpt4all_llm.py @@ -19,5 +19,5 @@ def gpt4all_generate_stream(model, tokenizer, params, device, max_position_embed while t.is_alive(): yield sys.stdout.output - time.sleep(0.1) + time.sleep(0.01) t.join() From 1f78c21c088e43fc81ba4f81245436e42267fdb0 Mon Sep 17 00:00:00 2001 From: csunny Date: Tue, 13 Jun 2023 19:46:03 +0800 Subject: [PATCH 08/18] debug: more detail error info --- pilot/server/llmserver.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pilot/server/llmserver.py b/pilot/server/llmserver.py index 30653a16e..003641807 100644 --- a/pilot/server/llmserver.py +++ b/pilot/server/llmserver.py @@ -86,6 +86,9 @@ class ModelWorker: except torch.cuda.CudaError: ret = {"text": "**GPU OutOfMemory, Please Refresh.**", "error_code": 0} yield json.dumps(ret).encode() + b"\0" + except Exception as e: + ret = {"text": f"**LLMServer Generate Error, Please CheckErrorInfo.**: {e}", "error_code": 0} + yield json.dumps(ret).encode() + b"\0" def get_embeddings(self, prompt): return get_embeddings(self.model, self.tokenizer, prompt) From d839180d67b144cf00b4b53d2cd27d8625428828 Mon Sep 17 00:00:00 2001 From: csunny Date: Tue, 13 Jun 2023 21:17:03 +0800 Subject: [PATCH 09/18] Todo: add retry for generate --- pilot/scene/base_chat.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pilot/scene/base_chat.py b/pilot/scene/base_chat.py index c1d831d0d..1eff3312c 100644 --- a/pilot/scene/base_chat.py +++ b/pilot/scene/base_chat.py @@ -136,6 +136,8 @@ class BaseChat(ABC): return payload def stream_call(self): + + # TODO Retry when server connection error payload = self.__call_base() self.skip_echo_len = len(payload.get("prompt").replace("", " ")) + 11 From 7f4d66151d2d6345450a32a00a3d73dfe26fe42f Mon Sep 17 00:00:00 2001 From: aries-ckt <916701291@qq.com> Date: Tue, 13 Jun 2023 22:55:02 +0800 Subject: [PATCH 10/18] fix:doc for DB chat --- pilot/language/lang_content_mapping.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pilot/language/lang_content_mapping.py b/pilot/language/lang_content_mapping.py index bccc01224..7e91a8a2b 100644 --- a/pilot/language/lang_content_mapping.py +++ b/pilot/language/lang_content_mapping.py @@ -44,7 +44,7 @@ lang_dicts = { "learn_more_markdown": "The service is a research preview intended for non-commercial use only. subject to the model [License](https://github.com/facebookresearch/llama/blob/main/MODEL_CARD.md) of Vicuna-13B", "model_control_param": "Model Parameters", "sql_generate_mode_direct": "Execute directly", - "sql_generate_mode_none": "db chat", + "sql_generate_mode_none": "DB chat", "max_input_token_size": "Maximum output token size", "please_choose_database": "Please choose database", "sql_generate_diagnostics": "SQL Generation & Diagnostics", From 61e71ed38bd77903542861c06ad07c5b2646d6bb Mon Sep 17 00:00:00 2001 From: aries-ckt <916701291@qq.com> Date: Tue, 13 Jun 2023 23:07:26 +0800 Subject: [PATCH 11/18] fix:default chunk size --- pilot/configs/config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pilot/configs/config.py b/pilot/configs/config.py index 971be9170..95baa81f0 100644 --- a/pilot/configs/config.py +++ b/pilot/configs/config.py @@ -152,7 +152,7 @@ class Config(metaclass=Singleton): ### EMBEDDING Configuration self.EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text2vec") self.KNOWLEDGE_CHUNK_SIZE = int(os.getenv("KNOWLEDGE_CHUNK_SIZE", 500)) - self.KNOWLEDGE_SEARCH_TOP_SIZE = int(os.getenv("KNOWLEDGE_SEARCH_TOP_SIZE", 10)) + self.KNOWLEDGE_SEARCH_TOP_SIZE = int(os.getenv("KNOWLEDGE_SEARCH_TOP_SIZE", 5)) ### SUMMARY_CONFIG Configuration self.SUMMARY_CONFIG = os.getenv("SUMMARY_CONFIG", "VECTOR") From 2f13b9da4c5f6ce47099afb90c8cb2788f0c8399 Mon Sep 17 00:00:00 2001 From: zhanghy-sketchzh <1750410339@qq.com> Date: Wed, 14 Jun 2023 00:00:25 +0800 Subject: [PATCH 12/18] update readm_zh --- assets/wechat.jpg | Bin 216029 -> 145617 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/wechat.jpg b/assets/wechat.jpg index f9faff063711170fac906d23bf37d26dbb35c539..94f9bec2a415d4a716d1b4ff23bdbd7dee07b524 100644 GIT binary patch literal 145617 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 literal 216029 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�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[mEWny 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 Yde{+>G1u-fB2(|YqKZPsY5n{E2Y|i6lK=n! From 00d24101f3b8061f1f2c469af5c020c31ec1cdd5 Mon Sep 17 00:00:00 2001 From: zhanghy-sketchzh <1750410339@qq.com> Date: Wed, 14 Jun 2023 00:22:02 +0800 Subject: [PATCH 13/18] support multi gpus --- pilot/model/adapter.py | 4 +--- pilot/model/loader.py | 6 +++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pilot/model/adapter.py b/pilot/model/adapter.py index 7892e4b1b..f648ea650 100644 --- a/pilot/model/adapter.py +++ b/pilot/model/adapter.py @@ -107,7 +107,7 @@ class GuanacoAdapter(BaseLLMAdaper): def loader(self, model_path: str, from_pretrained_kwargs: dict): tokenizer = LlamaTokenizer.from_pretrained(model_path) model = AutoModelForCausalLM.from_pretrained( - model_path, load_in_4bit=True, device_map={"": 0}, **from_pretrained_kwargs + model_path, load_in_4bit=True, **from_pretrained_kwargs ) return model, tokenizer @@ -126,7 +126,6 @@ class FalconAdapater(BaseLLMAdaper): model_path, load_in_4bit=True, # quantize quantization_config=bnb_config, - device_map={"": 0}, trust_remote_code=True, **from_pretrained_kwagrs, ) @@ -134,7 +133,6 @@ class FalconAdapater(BaseLLMAdaper): model = AutoModelForCausalLM.from_pretrained( model_path, trust_remote_code=True, - device_map={"": 0}, **from_pretrained_kwagrs, ) return model, tokenizer diff --git a/pilot/model/loader.py b/pilot/model/loader.py index 6fd6143ff..6acbc9234 100644 --- a/pilot/model/loader.py +++ b/pilot/model/loader.py @@ -73,12 +73,12 @@ class ModelLoader(metaclass=Singleton): elif self.device == "cuda": kwargs = {"torch_dtype": torch.float16} - num_gpus = int(num_gpus) + num_gpus = torch.cuda.device_count() if num_gpus != 1: kwargs["device_map"] = "auto" - if max_gpu_memory is None: - kwargs["device_map"] = "sequential" + # if max_gpu_memory is None: + # kwargs["device_map"] = "sequential" available_gpu_memory = get_gpu_memory(num_gpus) kwargs["max_memory"] = { From ff6d3a703596e3feddf60fc71d27f19b6dacc826 Mon Sep 17 00:00:00 2001 From: csunny Date: Wed, 14 Jun 2023 10:17:53 +0800 Subject: [PATCH 14/18] pylint: multi model for gp4all (#138) --- pilot/common/plugins.py | 16 ++++-- pilot/common/sql_database.py | 2 - pilot/configs/model_config.py | 4 +- pilot/connections/rdbms/clickhouse.py | 15 +++-- pilot/connections/rdbms/duckdb.py | 15 +++-- pilot/connections/rdbms/mssql.py | 7 +-- pilot/connections/rdbms/mysql.py | 5 -- pilot/connections/rdbms/oracle.py | 2 + pilot/connections/rdbms/postgres.py | 1 + pilot/connections/rdbms/py_study/pd_study.py | 29 +++++----- pilot/connections/rdbms/rdbms_connect.py | 58 +++++++++++++------- pilot/model/llm_out/proxy_llm.py | 4 +- pilot/out_parser/base.py | 12 ++-- pilot/scene/base_chat.py | 27 +++++---- pilot/scene/chat_execution/chat.py | 1 - pilot/scene/chat_execution/out_parser.py | 2 +- pilot/scene/chat_knowledge/default/chat.py | 4 +- pilot/server/__init__.py | 1 - pilot/server/llmserver.py | 5 +- pilot/server/webserver.py | 6 +- pilot/source_embedding/markdown_embedding.py | 6 +- pilot/source_embedding/pdf_embedding.py | 4 +- pilot/source_embedding/ppt_embedding.py | 6 +- pilot/summary/db_summary_client.py | 4 +- pilot/summary/mysql_db_summary.py | 29 +++++++--- 25 files changed, 154 insertions(+), 111 deletions(-) diff --git a/pilot/common/plugins.py b/pilot/common/plugins.py index 09931c90e..40646c309 100644 --- a/pilot/common/plugins.py +++ b/pilot/common/plugins.py @@ -77,19 +77,23 @@ def load_native_plugins(cfg: Config): print("load_native_plugins") ### TODO 默认拉主分支,后续拉发布版本 branch_name = cfg.plugins_git_branch - native_plugin_repo ="DB-GPT-Plugins" + native_plugin_repo = "DB-GPT-Plugins" url = "https://github.com/csunny/{repo}/archive/{branch}.zip" - response = requests.get(url.format(repo=native_plugin_repo, branch=branch_name), - headers={'Authorization': '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'}) + response = requests.get( + url.format(repo=native_plugin_repo, branch=branch_name), + headers={"Authorization": "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"}, + ) if response.status_code == 200: plugins_path_path = Path(PLUGINS_DIR) - files = glob.glob(os.path.join(plugins_path_path, f'{native_plugin_repo}*')) + files = glob.glob(os.path.join(plugins_path_path, f"{native_plugin_repo}*")) for file in files: os.remove(file) now = datetime.datetime.now() - time_str = now.strftime('%Y%m%d%H%M%S') - file_name = f"{plugins_path_path}/{native_plugin_repo}-{branch_name}-{time_str}.zip" + time_str = now.strftime("%Y%m%d%H%M%S") + file_name = ( + f"{plugins_path_path}/{native_plugin_repo}-{branch_name}-{time_str}.zip" + ) print(file_name) with open(file_name, "wb") as f: f.write(response.content) diff --git a/pilot/common/sql_database.py b/pilot/common/sql_database.py index 5ccfb7902..d59a9d33f 100644 --- a/pilot/common/sql_database.py +++ b/pilot/common/sql_database.py @@ -66,7 +66,6 @@ class Database: self._sample_rows_in_table_info = set() self._indexes_in_table_info = indexes_in_table_info - @classmethod def from_uri( cls, database_uri: str, engine_args: Optional[dict] = None, **kwargs: Any @@ -399,7 +398,6 @@ class Database: ans = cursor.fetchall() return ans[0][1] - def get_fields(self, table_name): """Get column fields about specified table.""" session = self._db_sessions() diff --git a/pilot/configs/model_config.py b/pilot/configs/model_config.py index 4bda464a7..0dc78af06 100644 --- a/pilot/configs/model_config.py +++ b/pilot/configs/model_config.py @@ -14,8 +14,8 @@ LOGDIR = os.path.join(ROOT_PATH, "logs") DATASETS_DIR = os.path.join(PILOT_PATH, "datasets") DATA_DIR = os.path.join(PILOT_PATH, "data") nltk.data.path = [os.path.join(PILOT_PATH, "nltk_data")] + nltk.data.path -PLUGINS_DIR = os.path.join(ROOT_PATH, "plugins") -FONT_DIR = os.path.join(PILOT_PATH, "fonts") +PLUGINS_DIR = os.path.join(ROOT_PATH, "plugins") +FONT_DIR = os.path.join(PILOT_PATH, "fonts") current_directory = os.getcwd() diff --git a/pilot/connections/rdbms/clickhouse.py b/pilot/connections/rdbms/clickhouse.py index c7421e8e6..3e243759d 100644 --- a/pilot/connections/rdbms/clickhouse.py +++ b/pilot/connections/rdbms/clickhouse.py @@ -6,6 +6,7 @@ from pilot.configs.config import Config CFG = Config() + class ClickHouseConnector(RDBMSDatabase): """ClickHouseConnector""" @@ -17,19 +18,21 @@ class ClickHouseConnector(RDBMSDatabase): default_db = ["information_schema", "performance_schema", "sys", "mysql"] - @classmethod def from_config(cls) -> RDBMSDatabase: """ Todo password encryption Returns: """ - return cls.from_uri_db(cls, - CFG.LOCAL_DB_PATH, - engine_args={"pool_size": 10, "pool_recycle": 3600, "echo": True}) + return cls.from_uri_db( + cls, + CFG.LOCAL_DB_PATH, + engine_args={"pool_size": 10, "pool_recycle": 3600, "echo": True}, + ) @classmethod - def from_uri_db(cls, db_path: str, - engine_args: Optional[dict] = None, **kwargs: Any) -> RDBMSDatabase: + def from_uri_db( + cls, db_path: str, engine_args: Optional[dict] = None, **kwargs: Any + ) -> RDBMSDatabase: db_url: str = cls.connect_driver + "://" + db_path return cls.from_uri(db_url, engine_args, **kwargs) diff --git a/pilot/connections/rdbms/duckdb.py b/pilot/connections/rdbms/duckdb.py index e8b1038cb..947807744 100644 --- a/pilot/connections/rdbms/duckdb.py +++ b/pilot/connections/rdbms/duckdb.py @@ -6,6 +6,7 @@ from pilot.configs.config import Config CFG = Config() + class DuckDbConnect(RDBMSDatabase): """Connect Duckdb Database fetch MetaData Args: @@ -20,19 +21,21 @@ class DuckDbConnect(RDBMSDatabase): default_db = ["information_schema", "performance_schema", "sys", "mysql"] - @classmethod def from_config(cls) -> RDBMSDatabase: """ Todo password encryption Returns: """ - return cls.from_uri_db(cls, - CFG.LOCAL_DB_PATH, - engine_args={"pool_size": 10, "pool_recycle": 3600, "echo": True}) + return cls.from_uri_db( + cls, + CFG.LOCAL_DB_PATH, + engine_args={"pool_size": 10, "pool_recycle": 3600, "echo": True}, + ) @classmethod - def from_uri_db(cls, db_path: str, - engine_args: Optional[dict] = None, **kwargs: Any) -> RDBMSDatabase: + def from_uri_db( + cls, db_path: str, engine_args: Optional[dict] = None, **kwargs: Any + ) -> RDBMSDatabase: db_url: str = cls.connect_driver + "://" + db_path return cls.from_uri(db_url, engine_args, **kwargs) diff --git a/pilot/connections/rdbms/mssql.py b/pilot/connections/rdbms/mssql.py index 89c37e757..ceab845c4 100644 --- a/pilot/connections/rdbms/mssql.py +++ b/pilot/connections/rdbms/mssql.py @@ -5,9 +5,6 @@ from typing import Optional, Any from pilot.connections.rdbms.rdbms_connect import RDBMSDatabase - - - class MSSQLConnect(RDBMSDatabase): """Connect MSSQL Database fetch MetaData Args: @@ -18,6 +15,4 @@ class MSSQLConnect(RDBMSDatabase): dialect: str = "mssql" driver: str = "pyodbc" - default_db = ["master", "model", "msdb", "tempdb","modeldb", "resource"] - - + default_db = ["master", "model", "msdb", "tempdb", "modeldb", "resource"] diff --git a/pilot/connections/rdbms/mysql.py b/pilot/connections/rdbms/mysql.py index c1b57f784..8acf90759 100644 --- a/pilot/connections/rdbms/mysql.py +++ b/pilot/connections/rdbms/mysql.py @@ -5,9 +5,6 @@ from typing import Optional, Any from pilot.connections.rdbms.rdbms_connect import RDBMSDatabase - - - class MySQLConnect(RDBMSDatabase): """Connect MySQL Database fetch MetaData Args: @@ -19,5 +16,3 @@ class MySQLConnect(RDBMSDatabase): driver: str = "pymysql" default_db = ["information_schema", "performance_schema", "sys", "mysql"] - - diff --git a/pilot/connections/rdbms/oracle.py b/pilot/connections/rdbms/oracle.py index 8c5c0d004..8959695b0 100644 --- a/pilot/connections/rdbms/oracle.py +++ b/pilot/connections/rdbms/oracle.py @@ -2,8 +2,10 @@ # -*- coding:utf-8 -*- from pilot.connections.rdbms.rdbms_connect import RDBMSDatabase + class OracleConnector(RDBMSDatabase): """OracleConnector""" + type: str = "ORACLE" driver: str = "oracle" diff --git a/pilot/connections/rdbms/postgres.py b/pilot/connections/rdbms/postgres.py index 2d366566a..104380a37 100644 --- a/pilot/connections/rdbms/postgres.py +++ b/pilot/connections/rdbms/postgres.py @@ -2,6 +2,7 @@ # -*- coding: utf-8 -*- from pilot.connections.rdbms.rdbms_connect import RDBMSDatabase + class PostgresConnector(RDBMSDatabase): """PostgresConnector is a class which Connector""" diff --git a/pilot/connections/rdbms/py_study/pd_study.py b/pilot/connections/rdbms/py_study/pd_study.py index 68784f9b7..5a2b3edae 100644 --- a/pilot/connections/rdbms/py_study/pd_study.py +++ b/pilot/connections/rdbms/py_study/pd_study.py @@ -57,18 +57,19 @@ CFG = Config() if __name__ == "__main__": - def __extract_json(s): - i = s.index('{') - count = 1 # 当前所在嵌套深度,即还没闭合的'{'个数 - for j, c in enumerate(s[i + 1:], start=i + 1): - if c == '}': - count -= 1 - elif c == '{': - count += 1 - if count == 0: - break - assert (count == 0) # 检查是否找到最后一个'}' - return s[i:j + 1] - ss = """here's a sql statement that can be used to generate a histogram to analyze the distribution of user orders in different cities:select u.city, count(*) as order_countfrom tran_order oleft join user u on o.user_id = u.idgroup by u.city;this will return the number of orders for each city that has at least one order. we can use this data to generate a histogram that shows the distribution of orders across different cities.here's the response in the required format:{ "thoughts": "here's a sql statement that can be used to generate a histogram to analyze the distribution of user orders in different cities:\n\nselect u.city, count(*) as order_count\nfrom tran_order o\nleft join user u on o.user_id = u.id\ngroup by u.city;", "speak": "here's a sql statement that can be used to generate a histogram to analyze the distribution of user orders in different cities.", "command": { "name": "histogram-executor", "args": { "title": "distribution of user orders in different cities", "sql": "select u.city, count(*) as order_count\nfrom tran_order o\nleft join user u on o.user_id = u.id\ngroup by u.city;" } }}""" - print(__extract_json(ss)) \ No newline at end of file + def __extract_json(s): + i = s.index("{") + count = 1 # 当前所在嵌套深度,即还没闭合的'{'个数 + for j, c in enumerate(s[i + 1 :], start=i + 1): + if c == "}": + count -= 1 + elif c == "{": + count += 1 + if count == 0: + break + assert count == 0 # 检查是否找到最后一个'}' + return s[i : j + 1] + + ss = """here's a sql statement that can be used to generate a histogram to analyze the distribution of user orders in different cities:select u.city, count(*) as order_countfrom tran_order oleft join user u on o.user_id = u.idgroup by u.city;this will return the number of orders for each city that has at least one order. we can use this data to generate a histogram that shows the distribution of orders across different cities.here's the response in the required format:{ "thoughts": "here's a sql statement that can be used to generate a histogram to analyze the distribution of user orders in different cities:\n\nselect u.city, count(*) as order_count\nfrom tran_order o\nleft join user u on o.user_id = u.id\ngroup by u.city;", "speak": "here's a sql statement that can be used to generate a histogram to analyze the distribution of user orders in different cities.", "command": { "name": "histogram-executor", "args": { "title": "distribution of user orders in different cities", "sql": "select u.city, count(*) as order_count\nfrom tran_order o\nleft join user u on o.user_id = u.id\ngroup by u.city;" } }}""" + print(__extract_json(ss)) diff --git a/pilot/connections/rdbms/rdbms_connect.py b/pilot/connections/rdbms/rdbms_connect.py index 424bfaa7f..7fef1862f 100644 --- a/pilot/connections/rdbms/rdbms_connect.py +++ b/pilot/connections/rdbms/rdbms_connect.py @@ -35,13 +35,12 @@ class RDBMSDatabase(BaseConnect): """SQLAlchemy wrapper around a database.""" def __init__( - self, - engine, - schema: Optional[str] = None, - metadata: Optional[MetaData] = None, - ignore_tables: Optional[List[str]] = None, - include_tables: Optional[List[str]] = None, - + self, + engine, + schema: Optional[str] = None, + metadata: Optional[MetaData] = None, + ignore_tables: Optional[List[str]] = None, + include_tables: Optional[List[str]] = None, ): """Create engine from database URI.""" self._engine = engine @@ -61,18 +60,37 @@ class RDBMSDatabase(BaseConnect): Todo password encryption Returns: """ - return cls.from_uri_db(cls, - CFG.LOCAL_DB_HOST, - CFG.LOCAL_DB_PORT, - CFG.LOCAL_DB_USER, - CFG.LOCAL_DB_PASSWORD, - engine_args={"pool_size": 10, "pool_recycle": 3600, "echo": True}) + return cls.from_uri_db( + cls, + CFG.LOCAL_DB_HOST, + CFG.LOCAL_DB_PORT, + CFG.LOCAL_DB_USER, + CFG.LOCAL_DB_PASSWORD, + engine_args={"pool_size": 10, "pool_recycle": 3600, "echo": True}, + ) @classmethod - def from_uri_db(cls, host: str, port: int, user: str, pwd: str, db_name: str = None, - engine_args: Optional[dict] = None, **kwargs: Any) -> RDBMSDatabase: - db_url: str = cls.connect_driver + "://" + CFG.LOCAL_DB_USER + ":" + CFG.LOCAL_DB_PASSWORD + "@" + CFG.LOCAL_DB_HOST + ":" + str( - CFG.LOCAL_DB_PORT) + def from_uri_db( + cls, + host: str, + port: int, + user: str, + pwd: str, + db_name: str = None, + engine_args: Optional[dict] = None, + **kwargs: Any, + ) -> RDBMSDatabase: + db_url: str = ( + cls.connect_driver + + "://" + + CFG.LOCAL_DB_USER + + ":" + + CFG.LOCAL_DB_PASSWORD + + "@" + + CFG.LOCAL_DB_HOST + + ":" + + str(CFG.LOCAL_DB_PORT) + ) if cls.dialect: db_url = cls.dialect + "+" + db_url if db_name: @@ -81,7 +99,7 @@ class RDBMSDatabase(BaseConnect): @classmethod def from_uri( - cls, database_uri: str, engine_args: Optional[dict] = None, **kwargs: Any + cls, database_uri: str, engine_args: Optional[dict] = None, **kwargs: Any ) -> RDBMSDatabase: """Construct a SQLAlchemy engine from URI.""" _engine_args = engine_args or {} @@ -167,7 +185,7 @@ class RDBMSDatabase(BaseConnect): tbl for tbl in self._metadata.sorted_tables if tbl.name in set(all_table_names) - and not (self.dialect == "sqlite" and tbl.name.startswith("sqlite_")) + and not (self.dialect == "sqlite" and tbl.name.startswith("sqlite_")) ] tables = [] @@ -180,7 +198,7 @@ class RDBMSDatabase(BaseConnect): create_table = str(CreateTable(table).compile(self._engine)) table_info = f"{create_table.rstrip()}" has_extra_info = ( - self._indexes_in_table_info or self._sample_rows_in_table_info + self._indexes_in_table_info or self._sample_rows_in_table_info ) if has_extra_info: table_info += "\n\n/*" diff --git a/pilot/model/llm_out/proxy_llm.py b/pilot/model/llm_out/proxy_llm.py index 8e98ed4c9..4336d43e3 100644 --- a/pilot/model/llm_out/proxy_llm.py +++ b/pilot/model/llm_out/proxy_llm.py @@ -51,7 +51,7 @@ def proxyllm_generate_stream(model, tokenizer, params, device, context_len=2048) } ) - # Move the last user's information to the end + # Move the last user's information to the end temp_his = history[::-1] last_user_input = None for m in temp_his: @@ -76,7 +76,7 @@ def proxyllm_generate_stream(model, tokenizer, params, device, context_len=2048) text = "" for line in res.iter_lines(): if line: - json_data = line.split(b': ', 1)[1] + json_data = line.split(b": ", 1)[1] decoded_line = json_data.decode("utf-8") if decoded_line.lower() != "[DONE]".lower(): obj = json.loads(json_data) diff --git a/pilot/out_parser/base.py b/pilot/out_parser/base.py index 3b4c9e028..bd968aef1 100644 --- a/pilot/out_parser/base.py +++ b/pilot/out_parser/base.py @@ -121,17 +121,17 @@ class BaseOutputParser(ABC): raise ValueError("Model server error!code=" + respObj_ex["error_code"]) def __extract_json(slef, s): - i = s.index('{') + i = s.index("{") count = 1 # 当前所在嵌套深度,即还没闭合的'{'个数 - for j, c in enumerate(s[i + 1:], start=i + 1): - if c == '}': + for j, c in enumerate(s[i + 1 :], start=i + 1): + if c == "}": count -= 1 - elif c == '{': + elif c == "{": count += 1 if count == 0: break - assert (count == 0) # 检查是否找到最后一个'}' - return s[i:j + 1] + assert count == 0 # 检查是否找到最后一个'}' + return s[i : j + 1] def parse_prompt_response(self, model_out_text) -> T: """ diff --git a/pilot/scene/base_chat.py b/pilot/scene/base_chat.py index 497b2cd10..0120b9e86 100644 --- a/pilot/scene/base_chat.py +++ b/pilot/scene/base_chat.py @@ -134,7 +134,6 @@ class BaseChat(ABC): return payload def stream_call(self): - # TODO Retry when server connection error payload = self.__call_base() @@ -189,19 +188,19 @@ class BaseChat(ABC): ) ) -# ### MOCK -# ai_response_text = """{ -# "thoughts": "可以从users表和tran_order表联合查询,按城市和订单数量进行分组统计,并使用柱状图展示。", -# "reasoning": "为了分析用户在不同城市的分布情况,需要查询users表和tran_order表,使用LEFT JOIN将两个表联合起来。按照城市进行分组,统计每个城市的订单数量。使用柱状图展示可以直观地看出每个城市的订单数量,方便比较。", -# "speak": "根据您的分析目标,我查询了用户表和订单表,统计了每个城市的订单数量,并生成了柱状图展示。", -# "command": { -# "name": "histogram-executor", -# "args": { -# "title": "订单城市分布柱状图", -# "sql": "SELECT users.city, COUNT(tran_order.order_id) AS order_count FROM users LEFT JOIN tran_order ON users.user_name = tran_order.user_name GROUP BY users.city" -# } -# } -# }""" + # ### MOCK + # ai_response_text = """{ + # "thoughts": "可以从users表和tran_order表联合查询,按城市和订单数量进行分组统计,并使用柱状图展示。", + # "reasoning": "为了分析用户在不同城市的分布情况,需要查询users表和tran_order表,使用LEFT JOIN将两个表联合起来。按照城市进行分组,统计每个城市的订单数量。使用柱状图展示可以直观地看出每个城市的订单数量,方便比较。", + # "speak": "根据您的分析目标,我查询了用户表和订单表,统计了每个城市的订单数量,并生成了柱状图展示。", + # "command": { + # "name": "histogram-executor", + # "args": { + # "title": "订单城市分布柱状图", + # "sql": "SELECT users.city, COUNT(tran_order.order_id) AS order_count FROM users LEFT JOIN tran_order ON users.user_name = tran_order.user_name GROUP BY users.city" + # } + # } + # }""" self.current_message.add_ai_message(ai_response_text) prompt_define_response = ( diff --git a/pilot/scene/chat_execution/chat.py b/pilot/scene/chat_execution/chat.py index f91af967c..1dcb4c6ed 100644 --- a/pilot/scene/chat_execution/chat.py +++ b/pilot/scene/chat_execution/chat.py @@ -80,7 +80,6 @@ class ChatWithPlugin(BaseChat): def __list_to_prompt_str(self, list: List) -> str: return "\n".join(f"{i + 1 + 1}. {item}" for i, item in enumerate(list)) - def generate(self, p) -> str: return super().generate(p) diff --git a/pilot/scene/chat_execution/out_parser.py b/pilot/scene/chat_execution/out_parser.py index 44f203d1e..565d54c5e 100644 --- a/pilot/scene/chat_execution/out_parser.py +++ b/pilot/scene/chat_execution/out_parser.py @@ -31,7 +31,7 @@ class PluginChatOutputParser(BaseOutputParser): command, thoughts, speak = ( response["command"], response["thoughts"], - response["speak"] + response["speak"], ) return PluginAction(command, speak, thoughts) diff --git a/pilot/scene/chat_knowledge/default/chat.py b/pilot/scene/chat_knowledge/default/chat.py index 3f21b828d..6116deecd 100644 --- a/pilot/scene/chat_knowledge/default/chat.py +++ b/pilot/scene/chat_knowledge/default/chat.py @@ -56,7 +56,9 @@ class ChatDefaultKnowledge(BaseChat): context = context[:2000] input_values = {"context": context, "question": self.current_user_input} except NoIndexException: - raise ValueError("you have no default knowledge store, please execute python knowledge_init.py") + raise ValueError( + "you have no default knowledge store, please execute python knowledge_init.py" + ) return input_values def do_with_prompt_response(self, prompt_response): diff --git a/pilot/server/__init__.py b/pilot/server/__init__.py index 55f525988..ac72fc637 100644 --- a/pilot/server/__init__.py +++ b/pilot/server/__init__.py @@ -5,7 +5,6 @@ import sys from dotenv import load_dotenv - if "pytest" in sys.argv or "pytest" in sys.modules or os.getenv("CI"): print("Setting random seed to 42") random.seed(42) diff --git a/pilot/server/llmserver.py b/pilot/server/llmserver.py index beab61d4a..1e3a4dcb3 100644 --- a/pilot/server/llmserver.py +++ b/pilot/server/llmserver.py @@ -87,7 +87,10 @@ class ModelWorker: ret = {"text": "**GPU OutOfMemory, Please Refresh.**", "error_code": 0} yield json.dumps(ret).encode() + b"\0" except Exception as e: - ret = {"text": f"**LLMServer Generate Error, Please CheckErrorInfo.**: {e}", "error_code": 0} + ret = { + "text": f"**LLMServer Generate Error, Please CheckErrorInfo.**: {e}", + "error_code": 0, + } yield json.dumps(ret).encode() + b"\0" def get_embeddings(self, prompt): diff --git a/pilot/server/webserver.py b/pilot/server/webserver.py index e76865550..761a239e7 100644 --- a/pilot/server/webserver.py +++ b/pilot/server/webserver.py @@ -667,8 +667,8 @@ if __name__ == "__main__": args = parser.parse_args() logger.info(f"args: {args}") - - # init config + + # init config cfg = Config() load_native_plugins(cfg) @@ -682,7 +682,7 @@ if __name__ == "__main__": "pilot.commands.built_in.audio_text", "pilot.commands.built_in.image_gen", ] - # exclude commands + # exclude commands command_categories = [ x for x in command_categories if x not in cfg.disabled_command_categories ] diff --git a/pilot/source_embedding/markdown_embedding.py b/pilot/source_embedding/markdown_embedding.py index 5f6d9526d..60046d0cd 100644 --- a/pilot/source_embedding/markdown_embedding.py +++ b/pilot/source_embedding/markdown_embedding.py @@ -30,7 +30,11 @@ class MarkdownEmbedding(SourceEmbedding): def read(self): """Load from markdown path.""" loader = EncodeTextLoader(self.file_path) - textsplitter = SpacyTextSplitter(pipeline='zh_core_web_sm', chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, chunk_overlap=200) + textsplitter = SpacyTextSplitter( + pipeline="zh_core_web_sm", + chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, + chunk_overlap=200, + ) return loader.load_and_split(textsplitter) @register diff --git a/pilot/source_embedding/pdf_embedding.py b/pilot/source_embedding/pdf_embedding.py index 66b0963d9..87ad9d1cf 100644 --- a/pilot/source_embedding/pdf_embedding.py +++ b/pilot/source_embedding/pdf_embedding.py @@ -29,7 +29,9 @@ class PDFEmbedding(SourceEmbedding): # pdf=True, sentence_size=CFG.KNOWLEDGE_CHUNK_SIZE # ) textsplitter = SpacyTextSplitter( - pipeline="zh_core_web_sm", chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, chunk_overlap=200 + pipeline="zh_core_web_sm", + chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, + chunk_overlap=200, ) return loader.load_and_split(textsplitter) diff --git a/pilot/source_embedding/ppt_embedding.py b/pilot/source_embedding/ppt_embedding.py index 869e92395..583b29ed1 100644 --- a/pilot/source_embedding/ppt_embedding.py +++ b/pilot/source_embedding/ppt_embedding.py @@ -25,7 +25,11 @@ class PPTEmbedding(SourceEmbedding): def read(self): """Load from ppt path.""" loader = UnstructuredPowerPointLoader(self.file_path) - textsplitter = SpacyTextSplitter(pipeline='zh_core_web_sm', chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, chunk_overlap=200) + textsplitter = SpacyTextSplitter( + pipeline="zh_core_web_sm", + chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, + chunk_overlap=200, + ) return loader.load_and_split(textsplitter) @register diff --git a/pilot/summary/db_summary_client.py b/pilot/summary/db_summary_client.py index 84fbf1550..5e551514b 100644 --- a/pilot/summary/db_summary_client.py +++ b/pilot/summary/db_summary_client.py @@ -78,7 +78,7 @@ class DBSummaryClient: model_name=LLM_MODEL_CONFIG[CFG.EMBEDDING_MODEL], vector_store_config=vector_store_config, ) - table_docs =knowledge_embedding_client.similar_search(query, topk) + table_docs = knowledge_embedding_client.similar_search(query, topk) ans = [d.page_content for d in table_docs] return ans @@ -147,8 +147,6 @@ class DBSummaryClient: logger.info("init db profile success...") - - def _get_llm_response(query, db_input, dbsummary): chat_param = { "temperature": 0.7, diff --git a/pilot/summary/mysql_db_summary.py b/pilot/summary/mysql_db_summary.py index 4a578fe2c..08a01c0fc 100644 --- a/pilot/summary/mysql_db_summary.py +++ b/pilot/summary/mysql_db_summary.py @@ -43,15 +43,14 @@ CFG = Config() # "tps": 50 # } + class MysqlSummary(DBSummary): """Get mysql summary template.""" def __init__(self, name): self.name = name self.type = "MYSQL" - self.summery = ( - """{{"database_name": "{name}", "type": "{type}", "tables": "{tables}", "qps": "{qps}", "tps": {tps}}}""" - ) + self.summery = """{{"database_name": "{name}", "type": "{type}", "tables": "{tables}", "qps": "{qps}", "tps": {tps}}}""" self.tables = {} self.tables_info = [] self.vector_tables_info = [] @@ -92,9 +91,12 @@ class MysqlSummary(DBSummary): self.tables[table_name] = table_summary.get_columns() self.table_columns_info.append(table_summary.get_columns()) # self.table_columns_json.append(table_summary.get_summary_json()) - table_profile = "table name:{table_name},table description:{table_comment}".format( - table_name=table_name, table_comment=self.db.get_show_create_table(table_name) + table_profile = ( + "table name:{table_name},table description:{table_comment}".format( + table_name=table_name, + table_comment=self.db.get_show_create_table(table_name), ) + ) self.table_columns_json.append(table_profile) # self.tables_info.append(table_summary.get_summery()) @@ -108,7 +110,11 @@ class MysqlSummary(DBSummary): def get_db_summery(self): return self.summery.format( - name=self.name, type=self.type, tables=";".join(self.vector_tables_info), qps=1000, tps=1000 + name=self.name, + type=self.type, + tables=";".join(self.vector_tables_info), + qps=1000, + tps=1000, ) def get_table_summary(self): @@ -153,7 +159,12 @@ class MysqlTableSummary(TableSummary): self.indexes_info.append(index_summary.get_summery()) self.json_summery = self.json_summery_template.format( - name=name, comment=comment_map[name], fields=self.fields_info, indexes=self.indexes_info, size_in_bytes=1000, rows=1000 + name=name, + comment=comment_map[name], + fields=self.fields_info, + indexes=self.indexes_info, + size_in_bytes=1000, + rows=1000, ) def get_summery(self): @@ -203,7 +214,9 @@ class MysqlIndexSummary(IndexSummary): self.bind_fields = index[1] def get_summery(self): - return self.summery_template.format(name=self.name, bind_fields=self.bind_fields) + return self.summery_template.format( + name=self.name, bind_fields=self.bind_fields + ) if __name__ == "__main__": From 2fdc7fb13967576f144d2458b8ee6d3e4f6ab098 Mon Sep 17 00:00:00 2001 From: aries-ckt <916701291@qq.com> Date: Wed, 14 Jun 2023 12:37:45 +0800 Subject: [PATCH 15/18] fix:default chunk size --- pilot/configs/config.py | 2 +- pilot/language/lang_content_mapping.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pilot/configs/config.py b/pilot/configs/config.py index 72458f150..4fd1a750c 100644 --- a/pilot/configs/config.py +++ b/pilot/configs/config.py @@ -154,7 +154,7 @@ class Config(metaclass=Singleton): ### EMBEDDING Configuration self.EMBEDDING_MODEL = os.getenv("EMBEDDING_MODEL", "text2vec") - self.KNOWLEDGE_CHUNK_SIZE = int(os.getenv("KNOWLEDGE_CHUNK_SIZE", 500)) + self.KNOWLEDGE_CHUNK_SIZE = int(os.getenv("KNOWLEDGE_CHUNK_SIZE", 100)) self.KNOWLEDGE_SEARCH_TOP_SIZE = int(os.getenv("KNOWLEDGE_SEARCH_TOP_SIZE", 5)) ### SUMMARY_CONFIG Configuration self.SUMMARY_CONFIG = os.getenv("SUMMARY_CONFIG", "VECTOR") diff --git a/pilot/language/lang_content_mapping.py b/pilot/language/lang_content_mapping.py index 7e91a8a2b..54bd63e35 100644 --- a/pilot/language/lang_content_mapping.py +++ b/pilot/language/lang_content_mapping.py @@ -7,7 +7,7 @@ lang_dicts = { "learn_more_markdown": "该服务是仅供非商业用途的研究预览。受 Vicuna-13B 模型 [License](https://github.com/facebookresearch/llama/blob/main/MODEL_CARD.md) 的约束", "model_control_param": "模型参数", "sql_generate_mode_direct": "直接执行结果", - "sql_generate_mode_none": "db问答", + "sql_generate_mode_none": "DB问答", "max_input_token_size": "最大输出Token数", "please_choose_database": "请选择数据", "sql_generate_diagnostics": "SQL生成与诊断", From 8980de9be4d3a794432ab0dc138fba2cb554ffcf Mon Sep 17 00:00:00 2001 From: aries-ckt <916701291@qq.com> Date: Wed, 14 Jun 2023 15:31:11 +0800 Subject: [PATCH 16/18] doc:db-gpt doc --- docs/getting_started/tutorials.md | 14 +- docs/index.rst | 6 +- .../LC_MESSAGES/getting_started/tutorials.po | 42 ++--- docs/locales/zh_CN/LC_MESSAGES/index.po | 144 ++++++++---------- .../zh_CN/LC_MESSAGES/modules/connections.po | 35 +++-- .../connections/mysql/mysql_connection.po | 36 +++++ .../zh_CN/LC_MESSAGES/modules/knowledge.po | 98 ++++++++++++ .../knowledge/markdown/markdown_embedding.po | 55 +++++++ .../modules/knowledge/pdf/pdf_embedding.po | 56 +++++++ .../modules/knowledge/ppt/ppt_embedding.po | 55 +++++++ .../modules/knowledge/url/url_embedding.po | 55 +++++++ .../modules/knowledge/word/word_embedding.po | 55 +++++++ .../use_cases/sql_generation_and_diagnosis.po | 22 ++- docs/modules/connections.md | 4 - docs/modules/connections.rst | 16 ++ .../connections/mysql/mysql_connection.md | 18 +++ docs/modules/knowledge.rst | 40 +++++ .../knowledge/markdown/markdown_embedding.md | 42 +++++ docs/modules/knowledge/pdf/pdf_embedding.md | 43 ++++++ docs/modules/knowledge/ppt/ppt_embedding.md | 40 +++++ docs/modules/knowledge/url/url_embedding.md | 47 ++++++ docs/modules/knowledge/word/word_embedding.md | 38 +++++ docs/use_cases/chatbots.md | 1 - docs/use_cases/interacting_with_api.md | 1 - .../use_cases/sql_generation_and_diagnosis.md | 6 +- pilot/source_embedding/markdown_embedding.py | 2 +- pilot/source_embedding/pdf_embedding.py | 2 +- 27 files changed, 843 insertions(+), 130 deletions(-) create mode 100644 docs/locales/zh_CN/LC_MESSAGES/modules/connections/mysql/mysql_connection.po create mode 100644 docs/locales/zh_CN/LC_MESSAGES/modules/knowledge.po create mode 100644 docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/markdown/markdown_embedding.po create mode 100644 docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/pdf/pdf_embedding.po create mode 100644 docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/ppt/ppt_embedding.po create mode 100644 docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/url/url_embedding.po create mode 100644 docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/word/word_embedding.po delete mode 100644 docs/modules/connections.md create mode 100644 docs/modules/connections.rst create mode 100644 docs/modules/connections/mysql/mysql_connection.md create mode 100644 docs/modules/knowledge.rst create mode 100644 docs/modules/knowledge/markdown/markdown_embedding.md create mode 100644 docs/modules/knowledge/pdf/pdf_embedding.md create mode 100644 docs/modules/knowledge/ppt/ppt_embedding.md create mode 100644 docs/modules/knowledge/url/url_embedding.md create mode 100644 docs/modules/knowledge/word/word_embedding.md delete mode 100644 docs/use_cases/chatbots.md delete mode 100644 docs/use_cases/interacting_with_api.md diff --git a/docs/getting_started/tutorials.md b/docs/getting_started/tutorials.md index 4c2245996..902216831 100644 --- a/docs/getting_started/tutorials.md +++ b/docs/getting_started/tutorials.md @@ -5,21 +5,21 @@ This is a collection of DB-GPT tutorials on Medium. DB-GPT is divided into several functions, including chat with knowledge base, execute SQL, chat with database, and execute plugins. -###Introduce -[What is DB-GPT](https://www.youtube.com/watch?v=QszhVJerc0I) by csunny (https://github.com/csunny/DB-GPT): +### Introduce +[What is DB-GPT](https://www.youtube.com/watch?v=QszhVJerc0I) ### Knowledge -[How to Create your own knowledge repository](https://db-gpt.readthedocs.io/en/latest/modules/knownledge.html) +[How to Create your own knowledge repository](https://db-gpt.readthedocs.io/en/latest/modules/knowledge.html) -[Add new Knowledge demonstration](../../assets/new_knownledge_en.gif) +[Add new Knowledge demonstration](https://github.com/csunny/DB-GPT/blob/main/assets/new_knownledge_en.gif) ### SQL Generation -[sql generation demonstration](../../assets/demo_en.gif) +[sql generation demonstration](https://github.com/csunny/DB-GPT/blob/main/assets/demo_en.gif) ### SQL Execute -[sql execute demonstration](../../assets/auto_sql_en.gif) +[sql execute demonstration](https://github.com/csunny/DB-GPT/blob/main/assets/auto_sql_en.gif) ### Plugins -[db plugins demonstration](../../assets/dbgpt_bytebase_plugin.gif) \ No newline at end of file +[db plugins demonstration](https://github.com/csunny/DB-GPT/blob/main/assets/auto_plugin.gif) \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst index 2b33ed0be..941aa4ff4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -68,7 +68,7 @@ It's very important for DB-GPT, DB-GPT also provide standard, extendable interfa - `Plugins <./modules/plugins.html>`_: Plugins management, scheduler. -- `Knownledge <./modules/knownledge.html>`_: Knownledge management, embedding, and search. +- `Knowledge <./modules/knowledge.html>`_: Knowledge management, embedding, and search. - `Connections <./modules/connections.html>`_: Supported multi databases connection. management connections and interact with this. @@ -81,8 +81,8 @@ It's very important for DB-GPT, DB-GPT also provide standard, extendable interfa ./modules/llms.md ./modules/prompts.md ./modules/plugins.md - ./modules/connections.md - ./modules/knownledge.md + ./modules/connections.rst + ./modules/knowledge.rst Use Cases --------- diff --git a/docs/locales/zh_CN/LC_MESSAGES/getting_started/tutorials.po b/docs/locales/zh_CN/LC_MESSAGES/getting_started/tutorials.po index b00cd631a..a5022ff27 100644 --- a/docs/locales/zh_CN/LC_MESSAGES/getting_started/tutorials.po +++ b/docs/locales/zh_CN/LC_MESSAGES/getting_started/tutorials.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DB-GPT 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-13 18:04+0800\n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: zh_CN\n" @@ -19,72 +19,72 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.12.1\n" -#: ../../getting_started/tutorials.md:1 7011a2ab0e7f45ddb1fa85b6479cc442 +#: ../../getting_started/tutorials.md:1 f80ad98cf2d444a3a159655b37ae4d4f msgid "Tutorials" msgstr "教程" -#: ../../getting_started/tutorials.md:4 960f88b9c1b64940bfa0576bab5b0314 +#: ../../getting_started/tutorials.md:4 ff8771c31b024e538dbbaaeaccec8aa7 msgid "This is a collection of DB-GPT tutorials on Medium." msgstr "这是知乎上DB-GPT教程的集合。." -#: ../../getting_started/tutorials.md:6 1c8db33581ea4928905e029a98b9a155 +#: ../../getting_started/tutorials.md:6 0c1c544a5d184375aabd7fe6918042e2 msgid "" "DB-GPT is divided into several functions, including chat with knowledge " "base, execute SQL, chat with database, and execute plugins." msgstr "" -#: ../../getting_started/tutorials.md:8 3915395cc45742519bf0c607eeafc489 +#: ../../getting_started/tutorials.md:8 b5e106a97bbd4467b071bb05d837d7d9 +msgid "Introduce" +msgstr "" + +#: ../../getting_started/tutorials.md:9 9df43436183d4b41a75a09fec15743d7 #, fuzzy -msgid "" -"###Introduce [What is DB-" -"GPT](https://www.youtube.com/watch?v=QszhVJerc0I) by csunny " -"(https://github.com/csunny/DB-GPT):" +msgid "[What is DB-GPT](https://www.youtube.com/watch?v=QszhVJerc0I)" msgstr "" "###Introduce [什么是DB-" "GPT](https://www.bilibili.com/video/BV1SM4y1a7Nj/?buvid=551b023900b290f9497610b2155a2668&is_story_h5=false&mid=%2BVyE%2Fwau5woPcUKieCWS0A%3D%3D&p=1&plat_id=116&share_from=ugc&share_medium=iphone&share_plat=ios&share_session_id=5D08B533-82A4-4D40-9615-7826065B4574&share_source=GENERIC&share_tag=s_i×tamp=1686307943&unique_k=bhO3lgQ&up_id=31375446)" " by csunny (https://github.com/csunny/DB-GPT)" -#: ../../getting_started/tutorials.md:11 e213736923574b2cb039a457d789c27c +#: ../../getting_started/tutorials.md:11 3096811f862649bf84ff3cd29cdf14db msgid "Knowledge" msgstr "知识库" -#: ../../getting_started/tutorials.md:13 90b5472735a644168d51c054ed882748 +#: ../../getting_started/tutorials.md:13 ea00f3de8c754bf2950e735a2f14043a msgid "" "[How to Create your own knowledge repository](https://db-" -"gpt.readthedocs.io/en/latest/modules/knownledge.html)" +"gpt.readthedocs.io/en/latest/modules/knowledge.html)" msgstr "" "[怎么创建自己的知识库](https://db-" -"gpt.readthedocs.io/en/latest/modules/knownledge.html)" +"gpt.readthedocs.io/en/latest/modules/knowledge.html)" -#: ../../getting_started/tutorials.md:15 6a851e1e88ea4bcbaf7ee742a12224ef +#: ../../getting_started/tutorials.md:15 07195f11314945989eeeb9400c8a9b43 msgid "[Add new Knowledge demonstration](../../assets/new_knownledge_en.gif)" msgstr "[新增知识库演示](../../assets/new_knownledge_en.gif)" -#: ../../getting_started/tutorials.md:17 59887be89d8046e28956f909fcbbc9dc +#: ../../getting_started/tutorials.md:17 5245cd247a184f63a10f735f414f303f msgid "SQL Generation" msgstr "" -#: ../../getting_started/tutorials.md:18 ee5decd8441d40ae8a240a19c1a5a74a +#: ../../getting_started/tutorials.md:18 38077ab510264112b6156c27b8880967 #, fuzzy msgid "[sql generation demonstration](../../assets/demo_en.gif)" msgstr "[sql生成演示](../../assets/demo_en.gif)" -#: ../../getting_started/tutorials.md:20 5d25c5d307c24c9198f2b52e70f2421c +#: ../../getting_started/tutorials.md:20 c0a6f9fefbb9404695fe3bffb6ecc577 msgid "SQL Execute" msgstr "SQL执行" -#: ../../getting_started/tutorials.md:21 ee5decd8441d40ae8a240a19c1a5a74a +#: ../../getting_started/tutorials.md:21 39fe94853f9c4165b40812c57171a6f4 #, fuzzy msgid "[sql execute demonstration](../../assets/auto_sql_en.gif)" msgstr "[sql execute 演示](../../assets/auto_sql_en.gif)" - -#: ../../getting_started/tutorials.md:26 4487ef393e004e7c936f5104727212a4 +#: ../../getting_started/tutorials.md:24 0fd9770dbf3c49b0b644599dc70187a7 #, fuzzy msgid "Plugins" msgstr "DB Plugins" -#: ../../getting_started/tutorials.md:27 ee5decd8441d40ae8a240a19c1a5a74a +#: ../../getting_started/tutorials.md:25 fc9830406c39473ab32df00a33340385 #, fuzzy msgid "[db plugins demonstration](../../assets/dbgpt_bytebase_plugin.gif)" msgstr "[db plugins 演示](../../assets/dbgpt_bytebase_plugin.gif)" diff --git a/docs/locales/zh_CN/LC_MESSAGES/index.po b/docs/locales/zh_CN/LC_MESSAGES/index.po index 5d1b9c0d0..16319d31f 100644 --- a/docs/locales/zh_CN/LC_MESSAGES/index.po +++ b/docs/locales/zh_CN/LC_MESSAGES/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DB-GPT 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-11 14:10+0800\n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: zh_CN\n" @@ -17,33 +17,33 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" -#: ../../index.rst:34 ../../index.rst:45 e3275f133efd471582d952301a6e243e +#: ../../index.rst:34 ../../index.rst:45 558ad9c9fc2240589fabce35463ca24c msgid "Getting Started" msgstr "开始" -#: ../../index.rst:56 ../../index.rst:75 86e2ce002e604304a4032aa1555b36cb +#: ../../index.rst:56 ../../index.rst:75 abd248b06ac142a68a89e0fb7e477536 msgid "Modules" msgstr "模块" -#: ../../index.rst:88 ../../index.rst:104 b15c23cfcc084df9a8f8f9990e6903ac +#: ../../index.rst:88 ../../index.rst:104 e046db82aa5845598b373ca1b9a73ec2 msgid "Use Cases" msgstr "示例" -#: ../../index.rst:118 ../../index.rst:121 70605b76fe5348299dd5d48d8ab6a77c +#: ../../index.rst:118 ../../index.rst:121 e6fbf08bf59b48afb4ac3f479d88256b msgid "Reference" msgstr "参考" -#: ../../index.rst:145 ../../index.rst:151 f62cf565fab64977b0efbd50e83540cc +#: ../../index.rst:145 ../../index.rst:151 03496f75357d4b4d9fd721516faa5e54 msgid "Resources" msgstr "资源" -#: ../../index.rst:7 c8b3a0ca759f432095161f7baccde1c4 +#: ../../index.rst:7 e0764d3d816244b4bf047032c1a28760 msgid "Welcome to DB-GPT!" msgstr "欢迎来到DB-GPT中文文档" -#: ../../index.rst:8 0167fea2c4df4181bc10d6e71527d005 +#: ../../index.rst:8 a3500e3f721348ce859c7c774b59b41a msgid "" "As large models are released and iterated upon, they are becoming " "increasingly intelligent. However, in the process of using large models, " @@ -56,217 +56,207 @@ msgid "" "independent private environments but also to be independently deployed " "and isolated according to business modules, ensuring that the ability of " "large models is absolutely private, secure, and controllable." -msgstr "随着大型模型的发布和迭代,它们变得越来越智能。然而,在使用大型模型的过程中," -"我们在数据安全和隐私方面面临着重大挑战。我们需要确保我们的敏感数据和环境得到完全控制," -"避免任何数据隐私泄露或安全风险。基于此,我们启动了DB-GPT项目,为所有基于数据库的" -"场景构建一个完整的私有大模型解决方案。该方案“”支持本地部署,既可应用于“独立私" -"有环境”,又可根据业务模块进行“独立部署”和“隔离”,确保“大模型”的能力绝对" -"私有、安全、可控。" +msgstr "" +"随着大型模型的发布和迭代,它们变得越来越智能。然而,在使用大型模型的过程中,我们在数据安全和隐私方面面临着重大挑战。我们需要确保我们的敏感数据和环境得到完全控制,避免任何数据隐私泄露或安全风险。基于此" +",我们启动了DB-" +"GPT项目,为所有基于数据库的场景构建一个完整的私有大模型解决方案。该方案“”支持本地部署,既可应用于“独立私有环境”,又可根据业务模块进行“独立部署”和“隔离”,确保“大模型”的能力绝对私有、安全、可控。" -#: ../../index.rst:10 36b847a04d624286a4942cd77821da8c +#: ../../index.rst:10 a8d66309ae5244d88b3c599a5ff97137 msgid "" "**DB-GPT** is an experimental open-source project that uses localized GPT" " large models to interact with your data and environment. With this " "solution, you can be assured that there is no risk of data leakage, and " "your data is 100% private and secure." -msgstr "DB-GPT 是一个开源的以数据库为基础的GPT实验项目,使用本地化的" -"GPT大模型与您的数据和环境进行交互,无数据泄露风险" -"100% 私密,100% 安全。" +msgstr "" +"DB-GPT 是一个开源的以数据库为基础的GPT实验项目,使用本地化的GPT大模型与您的数据和环境进行交互,无数据泄露风险100% 私密,100%" +" 安全。" -#: ../../index.rst:12 d20166d203934385b811740f4d5eda33 +#: ../../index.rst:12 806ae939ad9349ccb4375a236cbaf418 msgid "**Features**" msgstr "特性" -#: ../../index.rst:13 03f9de47513b4bc9a26f31e1d2d8ad60 +#: ../../index.rst:13 abd6265d37a64b00939e9c0a78f11a5e msgid "" "Currently, we have released multiple key features, which are listed below" " to demonstrate our current capabilities:" msgstr "目前我们已经发布了多种关键的特性,这里一一列举展示一下当前发布的能力。" -#: ../../index.rst:15 abc51c99bc6e49d5b0105c7d95e391da +#: ../../index.rst:15 6484ed0d92654283a7cbee6cb6b54821 msgid "SQL language capabilities - SQL generation - SQL diagnosis" msgstr "SQL语言能力 - SQL生成 - SQL诊断" -#: ../../index.rst:19 e9ba27f21fd84ecf973640fa021b06b6 +#: ../../index.rst:19 0d7ef0cf6ec649e5a9c7e076bc30ca1a msgid "" "Private domain Q&A and data processing - Database knowledge Q&A - Data " "processing" msgstr "私有领域问答与数据处理 - 数据库知识问答 - 数据处理" -#: ../../index.rst:23 a4584012b6634553abef5a4ee6ddf509 +#: ../../index.rst:23 83d1fc0f88cc42bca5206c4b9915ce65 msgid "" "Plugins - Support custom plugin execution tasks and natively support the " "Auto-GPT plugin, such as:" -msgstr "插件模型 - 支持自定义插件执行任务,并原生支持Auto-GPT插件,例如:" -"* SQL自动执行,获取查询结果 * 自动爬取学习知识" +msgstr "插件模型 - 支持自定义插件执行任务,并原生支持Auto-GPT插件,例如:* SQL自动执行,获取查询结果 * 自动爬取学习知识" -#: ../../index.rst:26 b08674d7a7da4405b9388e296bc2cd57 +#: ../../index.rst:26 7790cb466b1d455298d5eaa7582fc5ed msgid "" "Unified vector storage/indexing of knowledge base - Support for " "unstructured data such as PDF, Markdown, CSV, and WebURL" msgstr "知识库统一向量存储/索引 - 非结构化数据支持包括PDF、MarkDown、CSV、WebURL" -#: ../../index.rst:29 cf4bc81d46b4418b81a78242cbc7f984 +#: ../../index.rst:29 7354784dc4ba494e82f5d3acaac7730b msgid "" "Milti LLMs Support - Supports multiple large language models, currently " "supporting Vicuna (7b, 13b), ChatGLM-6b (int4, int8) - TODO: codegen2, " "codet5p" msgstr "多模型支持 - 支持多种大语言模型, 当前已支持Vicuna(7b,13b), ChatGLM-6b(int4, int8)" -Guanaco, Goriila, Falcon等系列模型" -#: ../../index.rst:35 681ae172eea64b718e0f6fc734d041b1 +#: ../../index.rst:35 8598e71986834a24aa390603b84288d1 msgid "" "How to get started using DB-GPT to interact with your data and " "environment." msgstr "开始使用DB-GPT与您的数据环境进行交互。" -#: ../../index.rst:36 87f507e0c27a4a38ba2a5c19e804549f +#: ../../index.rst:36 8685d294df2040d294523c068969a966 msgid "`Quickstart Guid <./getting_started/getting_started.html>`_" msgstr "`使用指南 <./getting_started/getting_started.html>`_" -#: ../../index.rst:38 ab35a5cd96c548ecb0c285fd822f652a +#: ../../index.rst:38 bd33c376f4d54a24957cdbd86ac969f1 msgid "Concepts and terminology" msgstr "相关概念" -#: ../../index.rst:40 3fbd5c96df084ef889442a0b89ad6c05 +#: ../../index.rst:40 2e9ac1f015bf4d37b0b76de94a831f5b msgid "`Concepts and terminology <./getting_started/concepts.html>`_" msgstr "`相关概念 <./getting_started/concepts.html>`_" -#: ../../index.rst:42 6d9a0d727ce14edfbdcf678c6fbba76b +#: ../../index.rst:42 d641ad48ed334db983d8906948b4b430 msgid "Coming soon..." -msgstr "未完待续。。。" +msgstr "" -#: ../../index.rst:44 58cdc41dce264a3e83de565501298010 +#: ../../index.rst:44 7b94cd856f154fbe9580d8595e9afe6a msgid "`Tutorials <.getting_started/tutorials.html>`_" msgstr "`教程 <.getting_started/tutorials.html>`_" -#: ../../index.rst:58 20d67b324c23468e8f2cac6d9100b9f5 +#: ../../index.rst:58 eaf73bfa0d484e79b90d4fa1d82d4cf6 msgid "" "These modules are the core abstractions with which we can interact with " "data and environment smoothly." msgstr "这些模块是我们可以与数据和环境顺利地进行交互的核心组成。" - -#: ../../index.rst:59 45a14052370f4860a72d8e831269d184 +#: ../../index.rst:59 4ccf7a955ed241b4ad7b80bef0a3ad59 msgid "" "It's very important for DB-GPT, DB-GPT also provide standard, extendable " "interfaces." msgstr "DB-GPT还提供了标准的、可扩展的接口。" -#: ../../index.rst:61 7c78c2ddc4104a8b9688472072c3225c +#: ../../index.rst:61 93a217c7147f47e6a3917784313c2eb3 msgid "" "The docs for each module contain quickstart examples, how to guides, " "reference docs, and conceptual guides." msgstr "每个模块的文档都包含快速入门的例子、操作指南、参考文档和相关概念等内容。" -#: ../../index.rst:63 4bcc203282434ca9b77d20c4115a646a +#: ../../index.rst:63 1876f94cc11e44d29b4391011c175fd6 msgid "The modules are as follows" msgstr "组成模块如下:" -#: ../../index.rst:65 c87f13e106b5443a824df5ca85331df4 +#: ../../index.rst:65 c5c0bc53b69448389bf94c5b3b0230a1 msgid "" "`LLMs <./modules/llms.html>`_: Supported multi models management and " "integrations." msgstr "`LLMs <./modules/llms.html>`_:基于FastChat提供大模型的运行环境。支持多模型管理和集成。 " -#: ../../index.rst:67 3447e10b61804b48a786ee12beaaedfd +#: ../../index.rst:67 b382b320fdd746e1940b67c0b6ff3d7d msgid "" "`Prompts <./modules/prompts.html>`_: Prompt management, optimization, and" " serialization for multi database." -msgstr "`Prompt自动生成与优化 <./modules/prompts.html>`_: 自动化生成高质量的Prompt" -" ,并进行优化,提高系统的响应效率" +msgstr "" +"`Prompt自动生成与优化 <./modules/prompts.html>`_: 自动化生成高质量的Prompt " +",并进行优化,提高系统的响应效率" -#: ../../index.rst:69 a3182673127141888fdc13560e7dcfb3 +#: ../../index.rst:69 a2d90f213158420cad5a8d65e8484bbd msgid "`Plugins <./modules/plugins.html>`_: Plugins management, scheduler." msgstr "`Agent与插件: <./modules/plugins.html>`_:提供Agent和插件机制,使得用户可以自定义并增强系统的行为。" -#: ../../index.rst:71 66abfffcb9c0466f9a3988ecfb19fc9e +#: ../../index.rst:71 a39a7a70dda94414b0625a897119795e +#, fuzzy msgid "" -"`Knownledge <./modules/knownledge.html>`_: Knownledge management, " -"embedding, and search." -msgstr "`知识库能力: <./modules/knownledge.html>`_: 支持私域知识库问答能力, " +"`Knowledge <./modules/knowledge.html>`_: Knowledge management, embedding," +" and search." +msgstr "`知识库能力: <./modules/knowledge.html>`_: 支持私域知识库问答能力, " -#: ../../index.rst:73 1027a33646614790a4d88f29285ab0fd +#: ../../index.rst:73 8c93459d2deb4085addb33628e5a6fde msgid "" "`Connections <./modules/connections.html>`_: Supported multi databases " "connection. management connections and interact with this." msgstr "`连接模块 <./modules/connections.html>`_: 用于连接不同的模块和数据源,实现数据的流转和交互 " - -#: ../../index.rst:90 53b58e6e531841878fbc8616841d5e9e +#: ../../index.rst:90 707311d87e294078a093c092dd9e61c8 msgid "Best Practices and built-in implementations for common DB-GPT use cases:" msgstr "DB-GPT用例的最佳实践和内置方法:" -#: ../../index.rst:92 a5c664233fe04417ba9bb0415fd686d7 +#: ../../index.rst:92 71c2be99432b413d928e5b18cbf3abd1 msgid "" "`Sql generation and diagnosis " "<./use_cases/sql_generation_and_diagnosis.html>`_: SQL generation and " "diagnosis." -msgstr "`Sql生成和诊断 " -"<./use_cases/sql_generation_and_diagnosis.html>`_: Sql生成和诊断。" +msgstr "`Sql生成和诊断 <./use_cases/sql_generation_and_diagnosis.html>`_: Sql生成和诊断。" - -#: ../../index.rst:94 04c63b56e77b45e5b4e7bd1db45ea10f +#: ../../index.rst:94 4101e1e6f9354c53addca1e3d07b0234 msgid "" "`knownledge Based QA <./use_cases/knownledge_based_qa.html>`_: A " "important scene for user to chat with database documents, codes, bugs and" " schemas." -msgstr "`知识库问答 <./use_cases/knownledge_based_qa.html>`_: " -"用户与数据库文档、代码和bug聊天的重要场景"。 +msgstr "`知识库问答 <./use_cases/knownledge_based_qa.html>`_: 用户与数据库文档、代码和bug聊天的重要场景\"" -#: ../../index.rst:96 415e2b9f640341a084f893781e2b3ec0 +#: ../../index.rst:96 87ae536fb701462991897494606d4b15 msgid "" "`Chatbots <./use_cases/chatbots.html>`_: Language model love to chat, use" " multi models to chat." msgstr "`聊天机器人 <./use_cases/chatbots.html>`_: 使用多模型进行对话" -#: ../../index.rst:98 59a7ec39d2034fb794a9272d55607122 +#: ../../index.rst:98 bf65b6a3036f4984b2641e3c621d764c msgid "" "`Querying Database Data <./use_cases/query_database_data.html>`_: Query " "and Analysis data from databases and give charts." -msgstr "`查询数据库数据 <./use_cases/query_database_data.html>`_:" -"从数据库中查询和分析数据并给出图表。" +msgstr "`查询数据库数据 <./use_cases/query_database_data.html>`_:从数据库中查询和分析数据并给出图表。" -#: ../../index.rst:100 3bd098eda9044bd39e4bba28a82f4195 +#: ../../index.rst:100 c854edf150624005bd5f62f2e3e0789b msgid "" "`Interacting with apis <./use_cases/interacting_with_api.html>`_: " "Interact with apis, such as create a table, deploy a database cluster, " "create a database and so on." -msgstr "`API交互 <./use_cases/interacting_with_api.html>`_: " +msgstr "" +"`API交互 <./use_cases/interacting_with_api.html>`_: " "与API交互,例如创建表、部署数据库集群、创建数据库等。" - -#: ../../index.rst:102 66daab899d7b4e528eda70779ab79676 +#: ../../index.rst:102 55ed3ed4ec7a45458f6686c437d65e41 msgid "" "`Tool use with plugins <./use_cases/tool_use_with_plugin>`_: According to" " Plugin use tools to manage databases autonomoly." -msgstr "`插件工具 <./use_cases/tool_use_with_plugin>`_:" -" 根据插件使用工具自主管理数据库。" +msgstr "`插件工具 <./use_cases/tool_use_with_plugin>`_: 根据插件使用工具自主管理数据库。" -#: ../../index.rst:119 e5a84e2dc87d4a06aa77ef4d77fb7bcb +#: ../../index.rst:119 e3b12d97d32c4c198a85e052b2a365c7 msgid "" "Full documentation on all methods, classes, installation methods, and " "integration setups for DB-GPT." msgstr "关于DB-GPT的所有方法、类、安装方法和集成设置的完整文档。" -#: ../../index.rst:130 7c51e39ad3824c5f8575390adbcba738 +#: ../../index.rst:130 1b82c35990b84b6bba05fd565ba6c32f msgid "Ecosystem" msgstr "环境系统" -#: ../../index.rst:132 b59e9ddba86945c1bebe395b2863174c +#: ../../index.rst:132 ef97b07c83e7469bba5a8bc36e1ed83f msgid "Guides for how other companies/products can be used with DB-GPT" msgstr "其他公司/产品如何与DB-GPT一起使用的方法指南" -#: ../../index.rst:147 992bf68cc48a425696c02429d39f86e3 +#: ../../index.rst:147 e597de3a7df7460d985c1a30589ce3bb msgid "" "Additional resources we think may be useful as you develop your " "application!" msgstr "“我们认为在您开发应用程序时可能有用的其他资源!”" -#: ../../index.rst:149 d99277006b05438c8d2e8088242f239c +#: ../../index.rst:149 1438b93c57e6459799c5656893c15aa7 msgid "" "`Discord `_: if your have some " "problem or ideas, you can talk from discord." -msgstr "`Discord `_:" -"如果您有任何问题,可以到discord中进行交流。" +msgstr "`Discord `_:如果您有任何问题,可以到discord中进行交流。" diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/connections.po b/docs/locales/zh_CN/LC_MESSAGES/modules/connections.po index 19b52157d..b534e5ba3 100644 --- a/docs/locales/zh_CN/LC_MESSAGES/modules/connections.po +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/connections.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DB-GPT 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-11 14:10+0800\n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: zh_CN\n" @@ -17,18 +17,33 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" -#: ../../modules/connections.md:1 21de23e95a6c4405a242fb9a0f4e5f2b +#: ../../modules/connections.rst:2 ../../modules/connections.rst:10 +#: c9783fd80b0b476abfbf25d4aa23b6ae msgid "Connections" msgstr "连接模块" -#: ../../modules/connections.md:3 0f09b3be20cd409f92c2ba819dbf45eb +#: ../../modules/connections.rst:3 95fecfbcae0e4170affd6a5e41a4fe56 +#, fuzzy msgid "" -"In order to interact more conveniently with users' private environments, " -"the project has designed a connection module, which can support " -"connection to databases, Excel, knowledge bases, and other environments " -"to achieve information and data exchange." -msgstr "为了更方便地与用户的私有环境进行交互,项目设计了一个连接模块,可以支持" -"与数据库、Excel、知识库等环境的连接,实现信息和数据的交换。" +"**In order to interact more conveniently with users' private " +"environments, the project has designed a connection module, which can " +"support connection to databases, Excel, knowledge bases, and other " +"environments to achieve information and data exchange.**" +msgstr "为了更方便地与用户的私有环境进行交互,项目设计了一个连接模块,可以支持与数据库、Excel、知识库等环境的连接,实现信息和数据的交换。" + +#: ../../modules/connections.rst:5 3a5a6124903c4d1fba8a8eb8426616b7 +msgid "" +"DB-GPT provides base class BaseConnect, you can inheriting and implement " +"get_session(), get_table_names(), get_index_info(), get_database_list() " +"and run()." +msgstr "DB-GPT提供了基础连接模块,你可以继承这个类,然后实现get_session(), get_table_names(), get_index_info(), get_database_list() " +"and run()这些方法即可,如果你的数据库是关系型数据库,可以直接继承RDBMSDatabase即可" + +#: ../../modules/connections.rst:7 78ef1226d576458fbd1a9f1043936fc8 +msgid "" +"`mysql_connection <./connections/mysql_connection.html>`_: supported " +"mysql_connection." +msgstr "mysql connection使用方法" diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/connections/mysql/mysql_connection.po b/docs/locales/zh_CN/LC_MESSAGES/modules/connections/mysql/mysql_connection.po new file mode 100644 index 000000000..ba26d7da5 --- /dev/null +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/connections/mysql/mysql_connection.po @@ -0,0 +1,36 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, csunny +# This file is distributed under the same license as the DB-GPT package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: DB-GPT 0.1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: zh_CN\n" +"Language-Team: zh_CN \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../modules/connections/mysql/mysql_connection.md:1 +#: 69e13b9e53ff466c9ec85715741dd938 +msgid "MYSQL Connection" +msgstr "MYSQL连接" + +#: ../../modules/connections/mysql/mysql_connection.md:3 +#: 4b8446fe31204688a87a5cff1180bec1 +msgid "MYSQL can connect mysql server." +msgstr "MYSQL可以连接mysql server" + +#: ../../modules/connections/mysql/mysql_connection.md:5 +#: 5a2141fba4bd41269d4ad73885067e0d +msgid "inheriting the RDBMSDatabase" +msgstr "继承RDBMSDatabase" + diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge.po b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge.po new file mode 100644 index 000000000..c9ee6467b --- /dev/null +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge.po @@ -0,0 +1,98 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, csunny +# This file is distributed under the same license as the DB-GPT package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: DB-GPT 0.1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-14 15:12+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: zh_CN\n" +"Language-Team: zh_CN \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../modules/knowledge.rst:2 ../../modules/knowledge.rst:30 +#: e98ef6095fc54f8f8dc045cfa1733dc2 +msgid "Knowledge" +msgstr "知识" + +#: ../../modules/knowledge.rst:4 51340dd2758e42ee8e96c3935de53438 +#, fuzzy +msgid "" +"As the knowledge base is currently the most significant user demand " +"scenario, we natively support the construction and processing of " +"knowledge bases. At the same time, we also provide multiple knowledge " +"base management strategies in this project, such as pdf knowledge,md " +"knowledge, txt knowledge, word knowledge, ppt knowledge:" +msgstr "由于知识库是当前用户需求最显著的场景,我们原生支持知识库的构建和处理。同时,我们还在本项目中提供了多种知识库管理策略,如:pdf,md " +", txt, word, ppt" + +#: ../../modules/knowledge.rst:7 25eeb187843a4d9baa4d0c0a404eec65 +msgid "**Create your own knowledge repository**" +msgstr "创建你自己的知识库" + +#: ../../modules/knowledge.rst:9 bed8a8f08c194ff59a31dc53f67561c1 +msgid "" +"1.Place personal knowledge files or folders in the pilot/datasets " +"directory." +msgstr "1.将个人知识文件或文件夹放在pilot/datasets目录中。" + +#: ../../modules/knowledge.rst:11 6e03e1a2799a432f8319c3aaf33e2867 +msgid "" +"We currently support many document formats: txt, pdf, md, html, doc, ppt," +" and url." +msgstr "当前支持txt, pdf, md, html, doc, ppt, url文档格式" + +#: ../../modules/knowledge.rst:13 883ebf16fe7f4e1fbc73ef7430104e79 +msgid "before execution: python -m spacy download zh_core_web_sm" +msgstr "在执行之前请先执行python -m spacy download zh_core_web_sm" + +#: ../../modules/knowledge.rst:15 59f4bfa8c1064391919ce2af69f2d4c9 +msgid "" +"2.Update your .env, set your vector store type, VECTOR_STORE_TYPE=Chroma " +"(now only support Chroma and Milvus, if you set Milvus, please set " +"MILVUS_URL and MILVUS_PORT)" +msgstr "2.更新你的.env,设置你的向量存储类型,VECTOR_STORE_TYPE=Chroma(现在只支持Chroma和Milvus,如果你设置了Milvus,请设置MILVUS_URL和MILVUS_PORT)" + +#: ../../modules/knowledge.rst:18 be600a4d93094045b78a43307dfc8f5f +#, fuzzy +msgid "2.Run the knowledge repository script in the tools directory." +msgstr "3.在tools目录执行知识入库脚本" + +#: ../../modules/knowledge.rst:20 b27eddbbf6c74993a6653575f57fff18 +msgid "" +"python tools/knowledge_init.py note : --vector_name : your vector store " +"name default_value:default" +msgstr "" + +#: ../../modules/knowledge.rst:23 f32dc12aedc94ffc8fee77a4b6e0ec88 +msgid "" +"3.Add the knowledge repository in the interface by entering the name of " +"your knowledge repository (if not specified, enter \"default\") so you " +"can use it for Q&A based on your knowledge base." +msgstr "如果选择新增知识库,在界面上新增知识库输入你的知识库名" + +#: ../../modules/knowledge.rst:25 5b1412c8beb24784bd2a93fe5c487b7b +msgid "" +"Note that the default vector model used is text2vec-large-chinese (which " +"is a large model, so if your personal computer configuration is not " +"enough, it is recommended to use text2vec-base-chinese). Therefore, " +"ensure that you download the model and place it in the models directory." +msgstr "" +"注意,这里默认向量模型是text2vec-large-chinese(模型比较大,如果个人电脑配置不够建议采用text2vec-base-" +"chinese),因此确保需要将模型download下来放到models目录中。" + +#: ../../modules/knowledge.rst:27 67773e32b01c48628c80b6fab8c90146 +msgid "" +"`pdf_embedding <./knowledge/pdf_embedding.html>`_: supported pdf " +"embedding." +msgstr "pdf_embedding <./knowledge/pdf_embedding.html>`_: supported pdf embedding." + diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/markdown/markdown_embedding.po b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/markdown/markdown_embedding.po new file mode 100644 index 000000000..7f14a7c1d --- /dev/null +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/markdown/markdown_embedding.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, csunny +# This file is distributed under the same license as the DB-GPT package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: DB-GPT 0.1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: zh_CN\n" +"Language-Team: zh_CN \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../modules/knowledge/markdown/markdown_embedding.md:1 +#: b5fd3aea05a64590955b958b753bf22a +msgid "MarkdownEmbedding" +msgstr "MarkdownEmbedding" + +#: ../../modules/knowledge/markdown/markdown_embedding.md:3 +#: 0f98ce5b34d44c6f9c828e4b497984de +msgid "" +"markdown embedding can import md text into a vector knowledge base. The " +"entire embedding process includes the read (loading data), data_process " +"(data processing), and index_to_store (embedding to the vector database) " +"methods." +msgstr "" +"markdown embedding 可以导入md格式的文档到向量数据库, 整个导入过程分为数据读取read(), " +"数据预处理data_process()和数据进向量数据库index_to_store()" + +#: ../../modules/knowledge/markdown/markdown_embedding.md:5 +#: 7f5ebfa8c7c146d7a340baca85634e16 +msgid "inheriting the SourceEmbedding" +msgstr "继承SourceEmbedding" + +#: ../../modules/knowledge/markdown/markdown_embedding.md:17 +#: 732e946bc9d149a5af802b239304b943 +#, fuzzy +msgid "" +"implement read() and data_process() read() method allows you to read data" +" and split data into chunk" +msgstr "实现read方法可以加载数据" + +#: ../../modules/knowledge/markdown/markdown_embedding.md:33 +#: f7e53658aee7403688b333b24ff08ce2 +msgid "data_process() method allows you to pre processing your ways" +msgstr "实现data_process方法可以进行数据预处理" + diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/pdf/pdf_embedding.po b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/pdf/pdf_embedding.po new file mode 100644 index 000000000..df41482f3 --- /dev/null +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/pdf/pdf_embedding.po @@ -0,0 +1,56 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, csunny +# This file is distributed under the same license as the DB-GPT package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: DB-GPT 0.1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: zh_CN\n" +"Language-Team: zh_CN \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../modules/knowledge/pdf/pdf_embedding.md:1 +#: fe600a1f3f9f492da81652ebd3d6d52d +msgid "PDFEmbedding" +msgstr "" + +#: ../../modules/knowledge/pdf/pdf_embedding.md:3 +#: a26a7d6ff041476b975bab5c0bf9f506 +#, fuzzy +msgid "" +"pdfembedding can import PDF text into a vector knowledge base. The entire" +" embedding process includes the read (loading data), data_process (data " +"processing), and index_to_store (embedding to the vector database) " +"methods." +msgstr "" +"pdf embedding 可以导入pdf格式的文档到向量数据库, 整个导入过程分为数据读取read(), " +"数据预处理data_process()和数据进向量数据库index_to_store()" + +#: ../../modules/knowledge/pdf/pdf_embedding.md:5 +#: 1895f2a6272c43f0b328caba092102a9 +msgid "inheriting the SourceEmbedding" +msgstr "继承SourceEmbedding" + +#: ../../modules/knowledge/pdf/pdf_embedding.md:17 +#: 2a4a349398354f9cb3e8d9630a4b8696 +#, fuzzy +msgid "" +"implement read() and data_process() read() method allows you to read data" +" and split data into chunk" +msgstr "实现read方法可以加载数据" + +#: ../../modules/knowledge/pdf/pdf_embedding.md:34 +#: 9b5c6d3e9e96443a908a09a8a762ea7a +msgid "data_process() method allows you to pre processing your ways" +msgstr "实现data_process方法可以进行数据预处理" + diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/ppt/ppt_embedding.po b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/ppt/ppt_embedding.po new file mode 100644 index 000000000..880499e84 --- /dev/null +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/ppt/ppt_embedding.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, csunny +# This file is distributed under the same license as the DB-GPT package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: DB-GPT 0.1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: zh_CN\n" +"Language-Team: zh_CN \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../modules/knowledge/ppt/ppt_embedding.md:1 +#: 2cdb249b2b284064a0c9117d051e35d4 +msgid "PPTEmbedding" +msgstr "" + +#: ../../modules/knowledge/ppt/ppt_embedding.md:3 +#: 71676e9b35434a849a206788da8f1394 +msgid "" +"ppt embedding can import ppt text into a vector knowledge base. The " +"entire embedding process includes the read (loading data), data_process " +"(data processing), and index_to_store (embedding to the vector database) " +"methods." +msgstr "" +"ppt embedding 可以导入ppt格式的文档到向量数据库, 整个导入过程分为数据读取read(), " +"数据预处理data_process()和数据进向量数据库index_to_store()" + +#: ../../modules/knowledge/ppt/ppt_embedding.md:5 +#: 016aeae4786e4d5bad815670bd109481 +msgid "inheriting the SourceEmbedding" +msgstr "继承SourceEmbedding" + +#: ../../modules/knowledge/ppt/ppt_embedding.md:17 +#: 2fb5b9dc912342df8c275cfd0e993fe0 +#, fuzzy +msgid "" +"implement read() and data_process() read() method allows you to read data" +" and split data into chunk" +msgstr "实现read方法可以加载数据" + +#: ../../modules/knowledge/ppt/ppt_embedding.md:31 +#: 9a00f72c7ec84bde9971579c720d2628 +msgid "data_process() method allows you to pre processing your ways" +msgstr "实现data_process方法可以进行数据预处理" + diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/url/url_embedding.po b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/url/url_embedding.po new file mode 100644 index 000000000..d7931d3f2 --- /dev/null +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/url/url_embedding.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, csunny +# This file is distributed under the same license as the DB-GPT package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: DB-GPT 0.1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: zh_CN\n" +"Language-Team: zh_CN \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../modules/knowledge/url/url_embedding.md:1 +#: e6d335e613ec4c3a80b89de67ba93098 +msgid "URL Embedding" +msgstr "" + +#: ../../modules/knowledge/url/url_embedding.md:3 +#: 25e7643335264bdaaa9386ded243d51d +msgid "" +"url embedding can import PDF text into a vector knowledge base. The " +"entire embedding process includes the read (loading data), data_process " +"(data processing), and index_to_store (embedding to the vector database) " +"methods." +msgstr "" +"url embedding 可以导入url格式的文档到向量数据库, 整个导入过程分为数据读取read(), " +"数据预处理data_process()和数据进向量数据库index_to_store()" + +#: ../../modules/knowledge/url/url_embedding.md:5 +#: 4b8ca6d93ed0412ab1e640bd42b400ac +msgid "inheriting the SourceEmbedding" +msgstr "继承SourceEmbedding" + +#: ../../modules/knowledge/url/url_embedding.md:17 +#: 5d69d27adc70406db97c398a339f6453 +#, fuzzy +msgid "" +"implement read() and data_process() read() method allows you to read data" +" and split data into chunk" +msgstr "实现read方法可以加载数据" + +#: ../../modules/knowledge/url/url_embedding.md:34 +#: 7d055e181d9b4d47965ab249b18bd704 +msgid "data_process() method allows you to pre processing your ways" +msgstr "实现data_process方法可以进行数据预处理" + diff --git a/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/word/word_embedding.po b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/word/word_embedding.po new file mode 100644 index 000000000..72ea187d4 --- /dev/null +++ b/docs/locales/zh_CN/LC_MESSAGES/modules/knowledge/word/word_embedding.po @@ -0,0 +1,55 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2023, csunny +# This file is distributed under the same license as the DB-GPT package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: DB-GPT 0.1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: zh_CN\n" +"Language-Team: zh_CN \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.12.1\n" + +#: ../../modules/knowledge/word/word_embedding.md:1 +#: 1b3272def692480bb101060a33d076c6 +msgid "WordEmbedding" +msgstr "" + +#: ../../modules/knowledge/word/word_embedding.md:3 +#: a7ea0e94e5c74dab9aa7fb80ed42ed39 +msgid "" +"word embedding can import word doc/docx text into a vector knowledge " +"base. The entire embedding process includes the read (loading data), " +"data_process (data processing), and index_to_store (embedding to the " +"vector database) methods." +msgstr "" +"word embedding 可以导入word格式的doc文档到向量数据库, 整个导入过程分为数据读取read(), " +"数据预处理data_process()和数据进向量数据库index_to_store()" + +#: ../../modules/knowledge/word/word_embedding.md:5 +#: 12ba9527ef0745538dffb6b1dcf96933 +msgid "inheriting the SourceEmbedding" +msgstr "继承SourceEmbedding" + +#: ../../modules/knowledge/word/word_embedding.md:17 +#: a4e5e7553f4a43b0b79ba0de83268ef0 +#, fuzzy +msgid "" +"implement read() and data_process() read() method allows you to read data" +" and split data into chunk" +msgstr "实现read方法可以加载数据" + +#: ../../modules/knowledge/word/word_embedding.md:29 +#: 188a434dee7543f89cf5f1584f29ca62 +msgid "data_process() method allows you to pre processing your ways" +msgstr "实现data_process方法可以进行数据预处理" + diff --git a/docs/locales/zh_CN/LC_MESSAGES/use_cases/sql_generation_and_diagnosis.po b/docs/locales/zh_CN/LC_MESSAGES/use_cases/sql_generation_and_diagnosis.po index b7ab23dfc..fd8918782 100644 --- a/docs/locales/zh_CN/LC_MESSAGES/use_cases/sql_generation_and_diagnosis.po +++ b/docs/locales/zh_CN/LC_MESSAGES/use_cases/sql_generation_and_diagnosis.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: DB-GPT 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-11 14:10+0800\n" +"POT-Creation-Date: 2023-06-14 14:51+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: zh_CN\n" @@ -17,10 +17,26 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.11.0\n" +"Generated-By: Babel 2.12.1\n" #: ../../use_cases/sql_generation_and_diagnosis.md:1 -#: 8900f8d9f3034b20a96df1d5c611eaa1 +#: f19384aa3b1d4fc2bed3aa94abe80a3c msgid "SQL generation and diagnosis" msgstr "SQL生成和诊断" +#: ../../use_cases/sql_generation_and_diagnosis.md:3 +#: 0aa11c79b20544b9a1376d184f58a516 +msgid "" +"DB-GPT provides SQL generation and diagnostic capabilities. With advanced" +" natural language processing algorithms and a deep understanding of SQL " +"syntax and semantics, the model can generate complex SQL queries from " +"natural language input, as well as diagnose and fix issues with existing " +"queries. This allows users to save time and streamline their workflow, " +"while also improving the accuracy and efficiency of their SQL operations." +msgstr "" + +#: ../../use_cases/sql_generation_and_diagnosis.md:5 +#: ffcbe5278cdc41a7b656f03bf82a8b26 +msgid "[SQL Generation](../../assets/demo_en.gif)" +msgstr "" + diff --git a/docs/modules/connections.md b/docs/modules/connections.md deleted file mode 100644 index 041120d26..000000000 --- a/docs/modules/connections.md +++ /dev/null @@ -1,4 +0,0 @@ -# Connections - -In order to interact more conveniently with users' private environments, the project has designed a connection module, which can support connection to databases, Excel, knowledge bases, and other environments to achieve information and data exchange. - diff --git a/docs/modules/connections.rst b/docs/modules/connections.rst new file mode 100644 index 000000000..96cfa1248 --- /dev/null +++ b/docs/modules/connections.rst @@ -0,0 +1,16 @@ +Connections +--------- +**In order to interact more conveniently with users' private environments, the project has designed a connection module, which can support connection to databases, Excel, knowledge bases, and other environments to achieve information and data exchange.** + +DB-GPT provides base class BaseConnect, you can inheriting and implement get_session(), get_table_names(), get_index_info(), get_database_list() and run(). + +- `mysql_connection <./connections/mysql_connection.html>`_: supported mysql_connection. + + +.. toctree:: + :maxdepth: 2 + :caption: Connections + :name: mysql_connection + :hidden: + + ./connections/mysql/mysql_connection.md \ No newline at end of file diff --git a/docs/modules/connections/mysql/mysql_connection.md b/docs/modules/connections/mysql/mysql_connection.md new file mode 100644 index 000000000..3204aa5db --- /dev/null +++ b/docs/modules/connections/mysql/mysql_connection.md @@ -0,0 +1,18 @@ +MYSQL Connection +================================== +MYSQL can connect mysql server. + +inheriting the RDBMSDatabase +``` +class MySQLConnect(RDBMSDatabase): + """Connect MySQL Database fetch MetaData + Args: + Usage: + """ + + type: str = "MySQL" + dialect: str = "mysql" + driver: str = "pymysql" + + default_db = ["information_schema", "performance_schema", "sys", "mysql"] +``` \ No newline at end of file diff --git a/docs/modules/knowledge.rst b/docs/modules/knowledge.rst new file mode 100644 index 000000000..72b97af98 --- /dev/null +++ b/docs/modules/knowledge.rst @@ -0,0 +1,40 @@ +Knowledge +--------- + +| As the knowledge base is currently the most significant user demand scenario, we natively support the construction and processing of knowledge bases. At the same time, we also provide multiple knowledge base management strategies in this project, such as pdf knowledge,md knowledge, txt knowledge, word knowledge, ppt knowledge: + + +**Create your own knowledge repository** + +1.Place personal knowledge files or folders in the pilot/datasets directory. + +We currently support many document formats: txt, pdf, md, html, doc, ppt, and url. + +before execution: python -m spacy download zh_core_web_sm + +2.Update your .env, set your vector store type, VECTOR_STORE_TYPE=Chroma +(now only support Chroma and Milvus, if you set Milvus, please set MILVUS_URL and MILVUS_PORT) + +2.Run the knowledge repository script in the tools directory. + +python tools/knowledge_init.py +note : --vector_name : your vector store name default_value:default + +3.Add the knowledge repository in the interface by entering the name of your knowledge repository (if not specified, enter "default") so you can use it for Q&A based on your knowledge base. + +Note that the default vector model used is text2vec-large-chinese (which is a large model, so if your personal computer configuration is not enough, it is recommended to use text2vec-base-chinese). Therefore, ensure that you download the model and place it in the models directory. + +- `pdf_embedding <./knowledge/pdf_embedding.html>`_: supported pdf embedding. + + +.. toctree:: + :maxdepth: 2 + :caption: Knowledge + :name: pdf_embedding + :hidden: + + ./knowledge/pdf/pdf_embedding.md + ./knowledge/markdown/markdown_embedding.md + ./knowledge/word/word_embedding.md + ./knowledge/url/url_embedding.md + ./knowledge/ppt/ppt_embedding.md \ No newline at end of file diff --git a/docs/modules/knowledge/markdown/markdown_embedding.md b/docs/modules/knowledge/markdown/markdown_embedding.md new file mode 100644 index 000000000..dfb42c7ff --- /dev/null +++ b/docs/modules/knowledge/markdown/markdown_embedding.md @@ -0,0 +1,42 @@ +MarkdownEmbedding +================================== +markdown embedding can import md text into a vector knowledge base. The entire embedding process includes the read (loading data), data_process (data processing), and index_to_store (embedding to the vector database) methods. + +inheriting the SourceEmbedding + +``` +class MarkdownEmbedding(SourceEmbedding): + """pdf embedding for read pdf document.""" + + def __init__(self, file_path, vector_store_config): + """Initialize with pdf path.""" + super().__init__(file_path, vector_store_config) + self.file_path = file_path + self.vector_store_config = vector_store_config +``` +implement read() and data_process() +read() method allows you to read data and split data into chunk + +``` +@register + def read(self): + """Load from markdown path.""" + loader = EncodeTextLoader(self.file_path) + textsplitter = SpacyTextSplitter( + pipeline="zh_core_web_sm", + chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, + chunk_overlap=100, + ) + return loader.load_and_split(textsplitter) +``` + +data_process() method allows you to pre processing your ways +``` +@register + def data_process(self, documents: List[Document]): + i = 0 + for d in documents: + documents[i].page_content = d.page_content.replace("\n", "") + i += 1 + return documents +``` \ No newline at end of file diff --git a/docs/modules/knowledge/pdf/pdf_embedding.md b/docs/modules/knowledge/pdf/pdf_embedding.md new file mode 100644 index 000000000..198a5297c --- /dev/null +++ b/docs/modules/knowledge/pdf/pdf_embedding.md @@ -0,0 +1,43 @@ +PDFEmbedding +================================== +pdfembedding can import PDF text into a vector knowledge base. The entire embedding process includes the read (loading data), data_process (data processing), and index_to_store (embedding to the vector database) methods. + +inheriting the SourceEmbedding +``` +class PDFEmbedding(SourceEmbedding): + """pdf embedding for read pdf document.""" + + def __init__(self, file_path, vector_store_config): + """Initialize with pdf path.""" + super().__init__(file_path, vector_store_config) + self.file_path = file_path + self.vector_store_config = vector_store_config +``` + +implement read() and data_process() +read() method allows you to read data and split data into chunk +``` +@register + def read(self): + """Load from pdf path.""" + loader = PyPDFLoader(self.file_path) + # textsplitter = CHNDocumentSplitter( + # pdf=True, sentence_size=CFG.KNOWLEDGE_CHUNK_SIZE + # ) + textsplitter = SpacyTextSplitter( + pipeline="zh_core_web_sm", + chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, + chunk_overlap=100, + ) + return loader.load_and_split(textsplitter) +``` +data_process() method allows you to pre processing your ways +``` +@register + def data_process(self, documents: List[Document]): + i = 0 + for d in documents: + documents[i].page_content = d.page_content.replace("\n", "") + i += 1 + return documents +``` diff --git a/docs/modules/knowledge/ppt/ppt_embedding.md b/docs/modules/knowledge/ppt/ppt_embedding.md new file mode 100644 index 000000000..e1d7754b9 --- /dev/null +++ b/docs/modules/knowledge/ppt/ppt_embedding.md @@ -0,0 +1,40 @@ +PPTEmbedding +================================== +ppt embedding can import ppt text into a vector knowledge base. The entire embedding process includes the read (loading data), data_process (data processing), and index_to_store (embedding to the vector database) methods. + +inheriting the SourceEmbedding +``` +class PPTEmbedding(SourceEmbedding): + """ppt embedding for read ppt document.""" + + def __init__(self, file_path, vector_store_config): + """Initialize with pdf path.""" + super().__init__(file_path, vector_store_config) + self.file_path = file_path + self.vector_store_config = vector_store_config +``` + +implement read() and data_process() +read() method allows you to read data and split data into chunk +``` +@register + def read(self): + """Load from ppt path.""" + loader = UnstructuredPowerPointLoader(self.file_path) + textsplitter = SpacyTextSplitter( + pipeline="zh_core_web_sm", + chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, + chunk_overlap=200, + ) + return loader.load_and_split(textsplitter) +``` +data_process() method allows you to pre processing your ways +``` +@register + def data_process(self, documents: List[Document]): + i = 0 + for d in documents: + documents[i].page_content = d.page_content.replace("\n", "") + i += 1 + return documents +``` diff --git a/docs/modules/knowledge/url/url_embedding.md b/docs/modules/knowledge/url/url_embedding.md new file mode 100644 index 000000000..637fa88c0 --- /dev/null +++ b/docs/modules/knowledge/url/url_embedding.md @@ -0,0 +1,47 @@ +URL Embedding +================================== +url embedding can import PDF text into a vector knowledge base. The entire embedding process includes the read (loading data), data_process (data processing), and index_to_store (embedding to the vector database) methods. + +inheriting the SourceEmbedding +``` +class URLEmbedding(SourceEmbedding): + """url embedding for read url document.""" + + def __init__(self, file_path, vector_store_config): + """Initialize with url path.""" + super().__init__(file_path, vector_store_config) + self.file_path = file_path + self.vector_store_config = vector_store_config +``` + +implement read() and data_process() +read() method allows you to read data and split data into chunk +``` +@register + def read(self): + """Load from url path.""" + loader = WebBaseLoader(web_path=self.file_path) + if CFG.LANGUAGE == "en": + text_splitter = CharacterTextSplitter( + chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, + chunk_overlap=20, + length_function=len, + ) + else: + text_splitter = CHNDocumentSplitter(pdf=True, sentence_size=1000) + return loader.load_and_split(text_splitter) +``` +data_process() method allows you to pre processing your ways +``` +@register + def data_process(self, documents: List[Document]): + i = 0 + for d in documents: + content = d.page_content.replace("\n", "") + soup = BeautifulSoup(content, "html.parser") + for tag in soup(["!doctype", "meta"]): + tag.extract() + documents[i].page_content = soup.get_text() + i += 1 + return documents +``` diff --git a/docs/modules/knowledge/word/word_embedding.md b/docs/modules/knowledge/word/word_embedding.md new file mode 100644 index 000000000..d978bf860 --- /dev/null +++ b/docs/modules/knowledge/word/word_embedding.md @@ -0,0 +1,38 @@ +WordEmbedding +================================== +word embedding can import word doc/docx text into a vector knowledge base. The entire embedding process includes the read (loading data), data_process (data processing), and index_to_store (embedding to the vector database) methods. + +inheriting the SourceEmbedding +``` +class WordEmbedding(SourceEmbedding): + """word embedding for read word document.""" + + def __init__(self, file_path, vector_store_config): + """Initialize with word path.""" + super().__init__(file_path, vector_store_config) + self.file_path = file_path + self.vector_store_config = vector_store_config +``` + +implement read() and data_process() +read() method allows you to read data and split data into chunk +``` +@register + def read(self): + """Load from word path.""" + loader = UnstructuredWordDocumentLoader(self.file_path) + textsplitter = CHNDocumentSplitter( + pdf=True, sentence_size=CFG.KNOWLEDGE_CHUNK_SIZE + ) + return loader.load_and_split(textsplitter) +``` +data_process() method allows you to pre processing your ways +``` +@register + def data_process(self, documents: List[Document]): + i = 0 + for d in documents: + documents[i].page_content = d.page_content.replace("\n", "") + i += 1 + return documents +``` diff --git a/docs/use_cases/chatbots.md b/docs/use_cases/chatbots.md deleted file mode 100644 index 547ae67cc..000000000 --- a/docs/use_cases/chatbots.md +++ /dev/null @@ -1 +0,0 @@ -# Chatbot \ No newline at end of file diff --git a/docs/use_cases/interacting_with_api.md b/docs/use_cases/interacting_with_api.md deleted file mode 100644 index 65f69ed2a..000000000 --- a/docs/use_cases/interacting_with_api.md +++ /dev/null @@ -1 +0,0 @@ -# Interacting with api \ No newline at end of file diff --git a/docs/use_cases/sql_generation_and_diagnosis.md b/docs/use_cases/sql_generation_and_diagnosis.md index f0448edd0..d608ce1ec 100644 --- a/docs/use_cases/sql_generation_and_diagnosis.md +++ b/docs/use_cases/sql_generation_and_diagnosis.md @@ -1 +1,5 @@ -# SQL generation and diagnosis \ No newline at end of file +# SQL generation and diagnosis + +DB-GPT provides SQL generation and diagnostic capabilities. With advanced natural language processing algorithms and a deep understanding of SQL syntax and semantics, the model can generate complex SQL queries from natural language input, as well as diagnose and fix issues with existing queries. This allows users to save time and streamline their workflow, while also improving the accuracy and efficiency of their SQL operations. + +[SQL Generation](../../assets/demo_en.gif) \ No newline at end of file diff --git a/pilot/source_embedding/markdown_embedding.py b/pilot/source_embedding/markdown_embedding.py index 60046d0cd..d8caee959 100644 --- a/pilot/source_embedding/markdown_embedding.py +++ b/pilot/source_embedding/markdown_embedding.py @@ -33,7 +33,7 @@ class MarkdownEmbedding(SourceEmbedding): textsplitter = SpacyTextSplitter( pipeline="zh_core_web_sm", chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, - chunk_overlap=200, + chunk_overlap=100, ) return loader.load_and_split(textsplitter) diff --git a/pilot/source_embedding/pdf_embedding.py b/pilot/source_embedding/pdf_embedding.py index 87ad9d1cf..dd8c39c03 100644 --- a/pilot/source_embedding/pdf_embedding.py +++ b/pilot/source_embedding/pdf_embedding.py @@ -31,7 +31,7 @@ class PDFEmbedding(SourceEmbedding): textsplitter = SpacyTextSplitter( pipeline="zh_core_web_sm", chunk_size=CFG.KNOWLEDGE_CHUNK_SIZE, - chunk_overlap=200, + chunk_overlap=100, ) return loader.load_and_split(textsplitter) From 639a36b7f2bedca35e8035553ae555db09b46235 Mon Sep 17 00:00:00 2001 From: csunny Date: Wed, 14 Jun 2023 15:47:51 +0800 Subject: [PATCH 17/18] docs: w --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 618e1f62a..b06dd344b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,7 @@ project = "DB-GPT" copyright = "2023, csunny" author = "csunny" -version = "0.1.0" +version = "👏👏 0.2.2" html_title = project + " " + version # -- General configuration --------------------------------------------------- From 73667ce2c3eee31659e9a5150663c5c172694e2f Mon Sep 17 00:00:00 2001 From: aries-ckt <916701291@qq.com> Date: Wed, 14 Jun 2023 17:53:25 +0800 Subject: [PATCH 18/18] fix:format --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index b06dd344b..e00f95f06 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,7 @@ project = "DB-GPT" copyright = "2023, csunny" author = "csunny" -version = "👏👏 0.2.2" +version = "👏👏 0.2.2" html_title = project + " " + version # -- General configuration ---------------------------------------------------