当前位置: 首页 > news >正文

240908-结合DBGPT与Ollama实现RAG本地知识检索增强

A. 最终效果

在这里插入图片描述

B. 背景说明

  • DBGPT在0.5.6版本中开始支持Ollama:v0.5.6 版本更新
    在这里插入图片描述

  • 网友对其Web端及界面端的设置进行了分享:

    • feat(model): support ollama as an optional llm & embedding proxy by GITHUBear · Pull Request #1475 · eosphoros-ai/DB-GPT
    • DB-GPT+Ollama构建本地智能数据平台_db-gpt ollama-CSDN博客

在这里插入图片描述

C. 环境配置

  • 参考官网教程完成环境配置
    在这里插入图片描述

D. 配置文件

  • ⚠️:注意下面带⭐️的操作
#*******************************************************************#
#**             DB-GPT  - GENERAL SETTINGS                        **#  
#*******************************************************************##*******************************************************************#
#**                        Webserver Port                         **#
#*******************************************************************#
# DBGPT_WEBSERVER_PORT=5670
## Whether to enable the new web UI, enabled by default,False use old ui
# USE_NEW_WEB_UI=True
#*******************************************************************#
#***                       LLM PROVIDER                          ***#
#*******************************************************************## TEMPERATURE=0#*******************************************************************#
#**                         LLM MODELS                            **#
#*******************************************************************#
# ⭐️ 添加Ollama配置
LLM_MODEL=ollama_proxyllm
PROXY_SERVER_URL=http://127.0.0.1:11434
PROXYLLM_BACKEND="qwen2:1.5b"
PROXY_API_KEY=not_used
EMBEDDING_MODEL=proxy_ollama
proxy_ollama_proxy_server_url=http://127.0.0.1:11434
proxy_ollama_proxy_backend="nomic-embed-text:latest"# LLM_MODEL=ollama_proxyllm
# MODEL_SERVER=http://127.0.0.1:11434
# PROXYLLM_BACKEND=llama3.1:8b
# EMBEDDING_MODEL=proxy_ollama
# proxy_ollama_proxy_server_url=http://127.0.0.1:11434
# proxy_ollama_proxy_backend=llama3.1:8b# LLM_MODEL=ollama_proxyllm
# PROXY_SERVER_URL=http://127.0.0.1:11434
# PROXYLLM_BACKEND="qwen:0.5b" 
# PROXY_API_KEY=not_used 
# EMBEDDING_MODEL=proxy_ollama 
# proxy_ollama_proxy_server_url=http://127.0.0.1:11434 
# proxy_ollama_proxy_backend="nomic-embed-text:latest"   # # LLM_MODEL, see dbgpt/configs/model_config.LLM_MODEL_CONFIG
# LLM_MODEL=glm-4-9b-chat
# ## LLM model path, by default, DB-GPT will read the model path from LLM_MODEL_CONFIG based on the LLM_MODEL.
# ## Of course you can specify your model path according to LLM_MODEL_PATH
# ## In DB-GPT, the priority from high to low to read model path:
# ##    1. environment variable with key: {LLM_MODEL}_MODEL_PATH (Avoid multi-model conflicts)
# ##    2. environment variable with key: MODEL_PATH
# ##    3. environment variable with key: LLM_MODEL_PATH
# ##    4. the config in dbgpt/configs/model_config.LLM_MODEL_CONFIG
# # LLM_MODEL_PATH=/app/models/glm-4-9b-chat
# # LLM_PROMPT_TEMPLATE=vicuna_v1.1
# MODEL_SERVER=http://127.0.0.1:8000
# LIMIT_MODEL_CONCURRENCY=5
# MAX_POSITION_EMBEDDINGS=4096
# QUANTIZE_QLORA=True
# QUANTIZE_8bit=True
# # QUANTIZE_4bit=False
# ## SMART_LLM_MODEL - Smart language model (Default: vicuna-13b)
# ## FAST_LLM_MODEL - Fast language model (Default: chatglm-6b)
# # SMART_LLM_MODEL=vicuna-13b
# # FAST_LLM_MODEL=chatglm-6b
# ## Proxy llm backend, this configuration is only valid when "LLM_MODEL=proxyllm", When we use the rest API provided by deployment frameworks like fastchat as a proxyllm, 
# ## "PROXYLLM_BACKEND" is the model they actually deploy. We can use "PROXYLLM_BACKEND" to load the prompt of the corresponding scene. 
# # PROXYLLM_BACKEND=# ### You can configure parameters for a specific model with {model name}_{config key}=xxx
# ### See dbgpt/model/parameter.py
# ## prompt template for current model
# # llama_cpp_prompt_template=vicuna_v1.1
# ## llama-2-70b must be 8
# # llama_cpp_n_gqa=8
# ## Model path
# # llama_cpp_model_path=/data/models/TheBloke/vicuna-13B-v1.5-GGUF/vicuna-13b-v1.5.Q4_K_M.gguf# ### LLM cache
# ## Enable Model cache
# # MODEL_CACHE_ENABLE=True
# ## The storage type of model cache, now supports: memory, disk
# # MODEL_CACHE_STORAGE_TYPE=disk
# ## The max cache data in memory, we always store cache data in memory fist for high speed. 
# # MODEL_CACHE_MAX_MEMORY_MB=256
# ## The dir to save cache data, this configuration is only valid when MODEL_CACHE_STORAGE_TYPE=disk
# ## The default dir is pilot/data/model_cache
# # MODEL_CACHE_STORAGE_DISK_DIR=#*******************************************************************#
#**                         EMBEDDING SETTINGS                    **#
#*******************************************************************#
# ⭐️ 取消非Ollama的Embedding设置
# EMBEDDING_MODEL=text2vec
# #EMBEDDING_MODEL=m3e-large
# #EMBEDDING_MODEL=bge-large-en
# #EMBEDDING_MODEL=bge-large-zh
# KNOWLEDGE_CHUNK_SIZE=500
# KNOWLEDGE_SEARCH_TOP_SIZE=5
# KNOWLEDGE_GRAPH_SEARCH_TOP_SIZE=200
# ## Maximum number of chunks to load at once, if your single document is too large,
# ## you can set this value to a higher value for better performance.
# ## if out of memory when load large document, you can set this value to a lower value.
# # KNOWLEDGE_MAX_CHUNKS_ONCE_LOAD=10
# #KNOWLEDGE_CHUNK_OVERLAP=50
# # Control whether to display the source document of knowledge on the front end.
# KNOWLEDGE_CHAT_SHOW_RELATIONS=False
# # Whether to enable Chat Knowledge Search Rewrite Mode
# KNOWLEDGE_SEARCH_REWRITE=False
# ## EMBEDDING_TOKENIZER   - Tokenizer to use for chunking large inputs
# ## EMBEDDING_TOKEN_LIMIT - Chunk size limit for large inputs
# # EMBEDDING_MODEL=all-MiniLM-L6-v2
# # EMBEDDING_TOKENIZER=all-MiniLM-L6-v2
# # EMBEDDING_TOKEN_LIMIT=8191# ## Openai embedding model, See dbgpt/model/parameter.py
# # EMBEDDING_MODEL=proxy_openai
# # proxy_openai_proxy_server_url=https://api.openai.com/v1
# # proxy_openai_proxy_api_key={your-openai-sk}
# # proxy_openai_proxy_backend=text-embedding-ada-002# ## qwen embedding model, See dbgpt/model/parameter.py
# # EMBEDDING_MODEL=proxy_tongyi
# # proxy_tongyi_proxy_backend=text-embedding-v1
# # proxy_tongyi_proxy_api_key={your-api-key}# ## qianfan embedding model, See dbgpt/model/parameter.py
# #EMBEDDING_MODEL=proxy_qianfan
# #proxy_qianfan_proxy_backend=bge-large-zh
# #proxy_qianfan_proxy_api_key={your-api-key}
# #proxy_qianfan_proxy_api_secret={your-secret-key}# ## Common HTTP embedding model
# # EMBEDDING_MODEL=proxy_http_openapi
# # proxy_http_openapi_proxy_server_url=http://localhost:8100/api/v1/embeddings
# # proxy_http_openapi_proxy_api_key=1dce29a6d66b4e2dbfec67044edbb924
# # proxy_http_openapi_proxy_backend=text2vec#*******************************************************************#
#**                         RERANK SETTINGS                       **#
#*******************************************************************#
## Rerank model
# RERANK_MODEL=bge-reranker-base
## If you not set RERANK_MODEL_PATH, DB-GPT will read the model path from EMBEDDING_MODEL_CONFIG based on the RERANK_MODEL.
# RERANK_MODEL_PATH=
## The number of rerank results to return
# RERANK_TOP_K=3## Common HTTP rerank model
# RERANK_MODEL=rerank_proxy_http_openapi
# rerank_proxy_http_openapi_proxy_server_url=http://127.0.0.1:8100/api/v1/beta/relevance
# rerank_proxy_http_openapi_proxy_api_key={your-api-key}
# rerank_proxy_http_openapi_proxy_backend=bge-reranker-base#*******************************************************************#
#**                  DB-GPT METADATA DATABASE SETTINGS            **#
#*******************************************************************#
### SQLite database (Current default database)
LOCAL_DB_TYPE=sqlite### MYSQL database
# LOCAL_DB_TYPE=mysql
# LOCAL_DB_USER=root
# LOCAL_DB_PASSWORD={your_password}
# LOCAL_DB_HOST=127.0.0.1
# LOCAL_DB_PORT=3306
# LOCAL_DB_NAME=dbgpt
### This option determines the storage location of conversation records. The default is not configured to the old version of duckdb. It can be optionally db or file (if the value is db, the database configured by LOCAL_DB will be used)
#CHAT_HISTORY_STORE_TYPE=db#*******************************************************************#
#**                         COMMANDS                              **#
#*******************************************************************#
EXECUTE_LOCAL_COMMANDS=False#*******************************************************************#
#**            VECTOR STORE / KNOWLEDGE GRAPH SETTINGS            **#
#*******************************************************************#
VECTOR_STORE_TYPE=Chroma
GRAPH_STORE_TYPE=TuGraph
GRAPH_COMMUNITY_SUMMARY_ENABLED=True
KNOWLEDGE_GRAPH_EXTRACT_SEARCH_TOP_SIZE=5
KNOWLEDGE_GRAPH_EXTRACT_SEARCH_RECALL_SCORE=0.3
KNOWLEDGE_GRAPH_COMMUNITY_SEARCH_TOP_SIZE=20
KNOWLEDGE_GRAPH_COMMUNITY_SEARCH_RECALL_SCORE=0.0### Chroma vector db config
#CHROMA_PERSIST_PATH=/root/DB-GPT/pilot/data### Milvus vector db config
#VECTOR_STORE_TYPE=Milvus
#MILVUS_URL=127.0.0.1
#MILVUS_PORT=19530
#MILVUS_USERNAME
#MILVUS_PASSWORD
#MILVUS_SECURE=### Weaviate vector db config
#VECTOR_STORE_TYPE=Weaviate
#WEAVIATE_URL=https://kt-region-m8hcy0wc.weaviate.network## ElasticSearch vector db config
#VECTOR_STORE_TYPE=ElasticSearch
ElasticSearch_URL=127.0.0.1
ElasticSearch_PORT=9200
ElasticSearch_USERNAME=elastic
ElasticSearch_PASSWORD={your_password}### TuGraph config
#TUGRAPH_HOST=127.0.0.1
#TUGRAPH_PORT=7687
#TUGRAPH_USERNAME=admin
#TUGRAPH_PASSWORD=73@TuGraph
#TUGRAPH_VERTEX_TYPE=entity
#TUGRAPH_EDGE_TYPE=relation
#TUGRAPH_PLUGIN_NAMES=leiden#*******************************************************************#
#**                  WebServer Language Support                   **#
#*******************************************************************#
# en, zh, fr, ja, ko, ru
LANGUAGE=en
#LANGUAGE=zh#*******************************************************************#
# **    PROXY_SERVER (openai interface | chatGPT proxy service), use chatGPT as your LLM.
# ⭐️ 注释掉Ollama之外的PROXY_SERVER_URL
# ** if your server can visit openai, please set PROXY_SERVER_URL=https://api.openai.com/v1/chat/completions
# ** else if you have a chatgpt proxy server, you can set PROXY_SERVER_URL={your-proxy-serverip:port/xxx}
#*******************************************************************#
# PROXY_API_KEY={your-openai-sk}
# PROXY_SERVER_URL=https://api.openai.com/v1/chat/completions# # from https://bard.google.com/     f12-> application-> __Secure-1PSID
# BARD_PROXY_API_KEY={your-bard-token}#*******************************************************************#
# **  PROXY_SERVER +                                              **#
#*******************************************************************## Aliyun tongyi
TONGYI_PROXY_API_KEY={your-tongyi-sk}## Baidu wenxin
#WEN_XIN_MODEL_VERSION={version}
#WEN_XIN_API_KEY={your-wenxin-sk}
#WEN_XIN_API_SECRET={your-wenxin-sct}## Zhipu
#ZHIPU_MODEL_VERSION={version}
#ZHIPU_PROXY_API_KEY={your-zhipu-sk}## Baichuan
#BAICHUN_MODEL_NAME={version}
#BAICHUAN_PROXY_API_KEY={your-baichuan-sk}
#BAICHUAN_PROXY_API_SECRET={your-baichuan-sct}# Xunfei Spark
#XUNFEI_SPARK_API_VERSION={version}
#XUNFEI_SPARK_APPID={your_app_id}
#XUNFEI_SPARK_API_KEY={your_api_key}
#XUNFEI_SPARK_API_SECRET={your_api_secret}## Yi Proxyllm, https://platform.lingyiwanwu.com/docs
#YI_MODEL_VERSION=yi-34b-chat-0205
#YI_API_BASE=https://api.lingyiwanwu.com/v1
#YI_API_KEY={your-yi-api-key}## Moonshot Proxyllm, https://platform.moonshot.cn/docs/
# MOONSHOT_MODEL_VERSION=moonshot-v1-8k
# MOONSHOT_API_BASE=https://api.moonshot.cn/v1
# MOONSHOT_API_KEY={your-moonshot-api-key}## Deepseek Proxyllm, https://platform.deepseek.com/api-docs/
# DEEPSEEK_MODEL_VERSION=deepseek-chat
# DEEPSEEK_API_BASE=https://api.deepseek.com/v1
# DEEPSEEK_API_KEY={your-deepseek-api-key}#*******************************************************************#
#**    SUMMARY_CONFIG                                             **#
#*******************************************************************#
SUMMARY_CONFIG=FAST#*******************************************************************#
#**    MUlti-GPU                                                  **#
#*******************************************************************#
## See https://developer.nvidia.com/blog/cuda-pro-tip-control-gpu-visibility-cuda_visible_devices/
## If CUDA_VISIBLE_DEVICES is not configured, all available gpus will be used
# CUDA_VISIBLE_DEVICES=0
## You can configure the maximum memory used by each GPU.
# MAX_GPU_MEMORY=16Gib#*******************************************************************#
#**                         LOG                                   **#
#*******************************************************************#
# FATAL, ERROR, WARNING, WARNING, INFO, DEBUG, NOTSET
DBGPT_LOG_LEVEL=INFO
# LOG dir, default: ./logs
#DBGPT_LOG_DIR=#*******************************************************************#
#**                         API_KEYS                              **#
#*******************************************************************#
# API_KEYS - The list of API keys that are allowed to access the API. Each of the below are an option, separated by commas.
# API_KEYS=dbgpt#*******************************************************************#
#**                         ENCRYPT                               **#
#*******************************************************************#
# ENCRYPT KEY - The key used to encrypt and decrypt the data
# ENCRYPT_KEY=your_secret_key#*******************************************************************#
#**                         File Server                           **#
#*******************************************************************#
## The local storage path of the file server, the default is pilot/data/file_server
# FILE_SERVER_LOCAL_STORAGE_PATH =#*******************************************************************#
#**                     Application Config                        **#
#*******************************************************************#
## Non-streaming scene retries
# DBGPT_APP_SCENE_NON_STREAMING_RETRIES_BASE=1
## Non-streaming scene parallelism
# DBGPT_APP_SCENE_NON_STREAMING_PARALLELISM_BASE=1#*******************************************************************#
#**                   Observability Config                        **#
#*******************************************************************#
## Whether to enable DB-GPT send trace to OpenTelemetry
# TRACER_TO_OPEN_TELEMETRY=False
## Following configurations are only valid when TRACER_TO_OPEN_TELEMETRY=True
## More details see https://opentelemetry-python.readthedocs.io/en/latest/exporter/otlp/otlp.html
# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4317
# OTEL_EXPORTER_OTLP_TRACES_INSECURE=False
# OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE=
# OTEL_EXPORTER_OTLP_TRACES_HEADERS=
# OTEL_EXPORTER_OTLP_TRACES_TIMEOUT=
# OTEL_EXPORTER_OTLP_TRACES_COMPRESSION=#*******************************************************************#
#**                     FINANCIAL CHAT Config                     **#
#*******************************************************************#
# FIN_REPORT_MODEL=/app/models/bge-large-zh
  • 错误排查

在这里插入图片描述

E. 运行使用

E.1 启动
python dbgpt/app/dbgpt_server.py
E.2 使用

在这里插入图片描述

F. 引文出处的设置

在新版本中,引文出处转移到了应用,通过创建应用绑定知识库,然后在应用里面对话后就会显示出处。

F.1 点击创建应用

在这里插入图片描述

在这里插入图片描述

F.2 绑定知识库

在这里插入图片描述

F.3 选择应用

在这里插入图片描述

F.4对话引文查看

在这里插入图片描述

http://www.lryc.cn/news/436651.html

相关文章:

  • AMD ThinkSystem服务器上的 Linux 和 C 状态设置 - Lenovo ThinkSystem
  • Redis过期删除和缓存淘汰
  • Golang | Leetcode Golang题解之第401题二进制手表
  • TON智能合约stdlib_ext库:扩展功能一览
  • LabVIEW开发FPGA方法与FIFO数据丢失处理
  • Python中的内存池机制
  • 智能家居系统(基于STM32F103C8T6标准库+FreeRTOS+Qt串口开发实现)
  • [数据集][目标检测]脊椎检测数据集VOC+YOLO格式1137张1类别
  • 大受欢迎的游戏却又意外被作者下架的《Flappy Bird》将重返iPhone
  • Flutter类
  • 深入解析全连接层:PyTorch 中的 nn.Linear、nn.Parameter 及矩阵运算
  • 缓存对象反序列化失败
  • F28335的存储器与寄存器
  • Python在AOIP(Audio Over IP)方面的应用探讨
  • C++20标准对线程库的改进:更安全、更高效的并发编程
  • 外包干了三年,快要废了。。。
  • 微服务网关终极进化:设计模式驱动的性能与可用性优化(四)
  • Java中的服务端点日志记录:AOP与SLF4J
  • 黑马头条第八天实战(上)
  • swift qwen2-vl推理及加载lora使用案例
  • 如何使用 Choreographer 进行帧率优化
  • 稳定驱动之选SiLM5350系列SiLM5350MDBCA-DG单通道隔离栅极驱动器(带内部钳位):工业自动化的可靠伙伴
  • 鸿蒙OpenHarmony【轻量系统芯片移植】内核移植
  • 多字节字符和宽字符
  • C++缺省参数
  • 深度学习中的常用线性代数知识汇总——第一篇:基础概念、秩、奇异值
  • MATLAB | R2024b更新了哪些好玩的东西?
  • 嵌入式硬件基础知识
  • keepalived和lvs高可用集群
  • 在VMware部署银河麒麟系统