【本地知识库】本地知识库+语言大模型=知域问答

本地如何通过Ollama部署llama3、phi3等本地大模型? 来运行阿里的通译千问大模型,生成内容质量还可以而且速度也很快,(题外:生成的文章如果收录不是很好,最好不要用markdown格式和html格式,直接用文本格式)包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。 阅读详情

本地知识库+语言大模型=知域问答

本项目实质为本地知识库构建及应用,内容包含:

  1. 本地知识库构建及应用相关知识的介绍
  2. 离线式本地知识库构建及应用
  3. 在线式本地知识库构建及应用

本地知识库构建及应用相关知识的介绍

本地知识库

本地知识库通常是指存储在本地计算机或服务器上的数据库或数据集,用于提供本地环境下的知识和信息。

本地知识库构建思路

  • 收集知识,如txt文件等;
  • 对文本进行切分;
  • 将文本转化为向量;
  • 将向量保存到本地向量数据库或者在线向量数据库;
  • 与LLM联系构建问答应用。

其实算法的整体思路也是这些步骤,明显只靠LLM是不够的,我们还需要一些其他功能将LLM应用起来,langchain就提供了一整套框架帮我们更好的应用LLM。

LangChain介绍

langchain是一个开发基于语言模型应用程序开发框架,链接面向用户程序和LLM之间的中间层。利用LangChain可以轻松管理和语言模型的交互,将多个组件链接在一起,比如各种LLM模型,提示模板,索引,代理等等。

langchain-ChatGLM

langchain-ChatGLM项目就是参考了Langchain的思路,实现了本地知识库构建及应用,我们一起看下langchain-ChatGLM搭建本地知识库的流程。

解释上图的langchain-ChatGLM项目流程如下:
(1-2)准备本地知识库文档,使用Unstructured Loader类加载文件,获取文本信息。

(3-4)对文本进行分割,将大量文本信息切分为chunks。

(5)选择一种embedding算法,对文本向量化,embedding算法有很多,选择其中一种即可。

(6)将知识库得到的embedding结果保存到数据库,保存到数据库后就不需要在执行上述步骤了。

(8-9)将问题也用同样的embedding算法,对问题向量化。

(10)从数据库中查找和问题向量最相似的N个文本信息。

(11)得到和问题相关的上下文文本信息。

(12)获取提示模板。

(13)得到输入大模型的prompt比如:"结合以下信息:" + 上下文文本信息 + "回答" + question + "输出规范:不要回答‘根据给出的信息、以上仅供参考、可以去哪里了解更多信息之类的’"。

(14)将prompt输入到LLM得到答案。

环境安装

In [ ]

# 创建持久化安装路径
!mkdir /home/aistudio/packages
!pip install langchain -t /home/aistudio/packages
# 加载文档
!pip install unstructured -t /home/aistudio/packages
# 解析表格
!pip install tabulate -t /home/aistudio/packages
# 使用sentence_transformers进行embedding
!pip install sentence_transformers -t /home/aistudio/packages
# 向量数据库
!pip install chromadb -t /home/aistudio/packages
!pip install supabase -t /home/aistudio/packages
# EB SDK
!pip install erniebot -t /home/aistudio/packages
# openai
!pip install openai  -t /home/aistudio/packages

In [ ]

# 执行完上面的环境安装部分后,以后再运行该项目只需要执行以下代码即可,无需重复安装环境
import sys
sys.path.append('/home/aistudio/packages')

离线本地知识库搭建及应用

离线本地知识库构建及应用,离线本地知识库向量存储(VectorStore)使用的是Chroma。

切分文本

In [ ]

from langchain.document_loaders import UnstructuredFileLoader  # 非结构化文件夹加载器,用于加载本地文件,目前,Unstructured支持加载文本文件、幻灯片、html、pdf、图像等
from langchain.text_splitter import RecursiveCharacterTextSplitter  # 递归字符文本分割器,通过不同的符号递归地分割文档

# 导入文本
loader = UnstructuredFileLoader("bengbengbeng/lvzhe.txt")
# 将文本转成 Document 对象
data = loader.load()
print(f'documents:{len(data)}')

# 初始化分割器
# chunk_size每个分片的最大大小,chunk_overlap分片之间的覆盖大小,可以保持连贯性
text_splitter = RecursiveCharacterTextSplitter(chunk_size=100, chunk_overlap=0)
# 切割加载的 document
split_docs = text_splitter.split_documents(data)
print("split_docs size:", len(split_docs), type(split_docs))

文本生成Embedding

使用HuggingFaceEmbeddings生成Embedding数据

In [ ]

from langchain.vectorstores import Chroma  # 围绕 ChromaDB 嵌入平台的包装器
from langchain.embeddings.huggingface import HuggingFaceEmbeddings  # 文本嵌入模型
import IPython  # 一个python的交互式shell
import sentence_transformers  # 一个用于最先进的句子、文本和图像嵌入的 Python 框架

# 初始化 hugginFace 的 embeddings 对象
embeddings = HuggingFaceEmbeddings(model_name="/home/aistudio/models/Embeddings/text2vec-base-chinese")
# embeddings.client = sentence_transformers.SentenceTransformer(
#         embeddings.model_name, device='mps')  # MPS是一种CUDA并行计算模型,它可将多个CUDA进程合并为一个单一的进程,从而提高GPU的利用率。然而,由于MPS的特殊设计,可能会对图像加载产生一些负面影响。
print("embeddings", embeddings)
print("embeddings model_name", embeddings.model_name)

将词向量通过Chroma保存到指定路径

In [5]

from langchain.vectorstores import Chroma  # 围绕 ChromaDB 嵌入平台的包装器
# 初始化加载器,并将向量保存到磁盘
db = Chroma.from_documents(split_docs, embeddings, persist_directory="./data/doc_embeding")
# 持久化
db.persist()

至此离线本地知识库已经构建完成,接下来将对语言大模型与构建好的离线本地知识库进行关联。

通过语言大模型构建问答系统

通过语言大模型构建问答系统分两种方式上进行,分别为:非langchain版和langchain版。
非langchain版:简单
langchain版:可拓展性高

非langchain版

In [ ]

import erniebot

# 认证鉴权
erniebot.api_type = 'aistudio'
erniebot.access_token = '{YOUR-ACCESS-TOKEN}'

# 加载之前持久化数据
db = Chroma(persist_directory="./data/doc_embeding", embedding_function=embeddings)

messages = []
while True:
    try:
        question = input('user: ')
        similarDocs = db.similarity_search(question, k=4)
        info = ""
        for similardoc in similarDocs:
            info = info + similardoc.page_content
        question = "结合以下信息:" + info + "回答" + question + "输出规范:不要回答‘根据给出的信息、以上仅供参考、可以去哪里了解更多信息之类的’"
        print(question)
        messages.append({'role': 'user', 'content': question})
        messages = messages[-5:]
        response = erniebot.ChatCompletion.create(
            model='ernie-bot',
            messages=messages,
        )
        messages.append(response.to_message())
        print('output: ' + response.get_result())
    except KeyboardInterrupt:
        print("检索世界库终止!")
        break
langchain版

In [ ]

import erniebot
from pydantic import BaseModel, Field  
from typing import Dict, List, Optional, Tuple, Union
from langchain.vectorstores import Chroma  # 围绕 ChromaDB 嵌入平台的包装器
from langchain.prompts import PromptTemplate
from langchain.llms.base import LLM
from langchain.chains import RetrievalQA
from langchain.memory import ConversationBufferMemory


# 认证鉴权
erniebot.api_type = 'aistudio'
erniebot.access_token = '{YOUR-ACCESS-TOKEN}'

class EB(LLM):

    def __init__(self):
        super().__init__()

    @property
    def _llm_type(self) -> str:
        return "erniebot"

    def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
        prompt_list = []
        prompt_list.append(prompt)
        chat_completion = erniebot.ChatCompletion.create(model='ernie-bot', messages=[{"role": "user", "content": str(prompt_list)}])
        response = chat_completion.get_result()
        return response


class QuestionAnswer():
    def __init__(self, model_name):
        self.llm = EB()
        self.embedding = HuggingFaceEmbeddings(model_name=model_name)
        self.vector_store = Chroma(persist_directory="./data/doc_embeding", embedding_function=self.embedding)
        self.prompt_template = """基于以下已知信息,严格按照信息简洁和专业的来回答用户的问题,不需要回复"根据已知信息"。
                                                如果无法从中得到答案,请说 "非常抱歉!世界库知识检索失败!判断非本世界知识或产物。",不允许在答案中添加编造成分,答案请使用中文。
                                                已知内容:
                                                {context}
                                                问题:
                                                {question}"""
        self.promptTemplate = PromptTemplate(
                                    template=self.prompt_template,
                                    input_variables=["context", "question"]
                                )
        
    def generate(self, question):
        knowledge_chain = RetrievalQA.from_llm(
                                llm=self.llm,
                                retriever=self.vector_store.as_retriever(search_kwargs={"k": 5}),
                                prompt=self.promptTemplate)
        knowledge_chain.return_source_documents = True
        result = knowledge_chain({"query": question})
        response = result['result']
        return response

model_name = "/home/aistudio/models/Embeddings/text2vec-base-chinese"
qa = QuestionAnswer(model_name)
while True:
    try:
        question = input('user: ')
        response = qa.generate(question)
        print('output: ' + response)
    except KeyboardInterrupt:
        print("检索世界库终止!")

在线本地知识库构建及应用

在线本地知识库构建及应用,在线本地知识库向量存储(VectorStore)使用的是Supabase。

构建在线本地知识库之前的准备--Supabase账户注册与数据库创建

Supabase官网--Supabase
一、注册Supabase用户并登录
 


 


二、新建项目
 


三、填写信息
 


四、获取Project URL和Project API Keys
 


五、返回主页面
 


六、选择刚创建的数据库
 


七、pgvector扩展启用、match_documents函数、documents表创建

-- Enable the pgvector extension to work with embedding vectors
create extension vector;

-- Create a table to store your documents
create table documents (
  id uuid primary key,
  content text, -- corresponds to Document.pageContent
  metadata jsonb, -- corresponds to Document.metadata
  embedding vector(768) -- 1536 works for OpenAI embeddings, change if needed
);

-- Create a function to search for documents
create function match_documents (
  query_embedding vector(768),
  match_count int DEFAULT null,
  filter jsonb DEFAULT '{}'
) returns table (
  id uuid,
  content text,
  metadata jsonb,
  embedding jsonb,
  similarity float
)
language plpgsql
as $$
#variable_conflict use_column
begin
  return query
  select
    id,
    content,
    metadata,
    (embedding::text)::jsonb as embedding,
    1 - (documents.embedding <=> query_embedding) as similarity
  from documents
  where metadata @> filter
  order by documents.embedding <=> query_embedding
  limit match_count;
end;
$$;

如果使用的Embedding模型为OpenAI embeddings,请将上面命令中所有的768改为1536。
 


好了,构建在线本地知识库的准备工作已经完成了,接下来就正式开在线本地知识库的构建了!

切分文本

In [ ]

from langchain.document_loaders import UnstructuredFileLoader  # 非结构化文件夹加载器,用于加载本地文件,目前,Unstructured支持加载文本文件、幻灯片、html、pdf、图像等
from langchain.text_splitter import CharacterTextSplitter  # 递归字符文本分割器,通过不同的符号递归地分割文档

# 导入文本
loader = UnstructuredFileLoader("world/shijie.txt")
# 将文本转成 Document 对象
data = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=300, chunk_overlap=25)
split_docs = text_splitter.split_documents(data)

文本生成Embedding

使用HuggingFaceEmbeddings生成Embedding数据

In [ ]

from langchain.embeddings.huggingface import HuggingFaceEmbeddings  # 文本嵌入模型

embeddings = HuggingFaceEmbeddings(model_name="/home/aistudio/models/Embeddings/text2vec-base-chinese")
print("embeddings", embeddings)
print("embeddings model_name", embeddings.model_name)

将词向量保存到在线数据库Supabase

In [ ]

# 配置Supabase
import os
import getpass
from langchain.vectorstores import SupabaseVectorStore
from supabase.client import Client, create_client

# 配置Supabase
os.environ['SUPABASE_URL'] = getpass.getpass('Supabase URL:')
os.environ['SUPABASE_SERVICE_KEY'] = getpass.getpass('Supabase Service Key:')
supabase_url = os.environ.get("SUPABASE_URL")
supabase_key = os.environ.get("SUPABASE_SERVICE_KEY")
supabase_client: Client = create_client(supabase_url, supabase_key)

vector_store = SupabaseVectorStore.from_documents(
    split_docs,
    embeddings,
    client=supabase_client
)

至此在线本地知识库已经构建完成,接下来将对语言大模型与构建好的在线本地知识库进行关联。

通过语言大模型构建问答系统

通过语言大模型构建问答系统分两种方式上进行,分别为:非langchain版和langchain版。
非langchain版:简单
langchain版:可拓展性高

非langchain版

In [ ]

import os
import getpass
import erniebot
from langchain.vectorstores import SupabaseVectorStore
from supabase.client import Client, create_client
from langchain.embeddings.huggingface import HuggingFaceEmbeddings  # 文本嵌入模型

# 认证鉴权
erniebot.api_type = 'aistudio'
erniebot.access_token = '{YOUR-ACCESS-TOKEN}'
# 配置Supabase
os.environ['SUPABASE_URL'] = getpass.getpass('Supabase URL:')
os.environ['SUPABASE_SERVICE_KEY'] = getpass.getpass('Supabase Service Key:')
supabase_url = os.environ.get("SUPABASE_URL")
supabase_key = os.environ.get("SUPABASE_SERVICE_KEY")
supabase_client: Client = create_client(supabase_url, supabase_key)
embeddings = HuggingFaceEmbeddings(model_name="/home/aistudio/models/Embeddings/text2vec-base-chinese")

# 加载存储在Supabase上的数据
vector_store = SupabaseVectorStore(
    client=supabase_client,
    embedding=embeddings,
    table_name="documents"
)

messages = []
while True:
    try:
        question = input('user: ')
        similarDocs = vector_store.similarity_search(question, k=4)
        info = ""
        for similardoc in similarDocs:
            info = info + similardoc.page_content + '\n'
        question = "结合以下信息:\n" + info + "回答" + question + "输出规范:不要回答‘根据给出的信息、以上仅供参考、可以去哪里了解更多信息之类的’"
        print(question)
        messages.append({'role': 'user', 'content': question})
        messages = messages[-5:]
        response = erniebot.ChatCompletion.create(
            model='ernie-bot',
            messages=messages,
        )
        messages.append(response.to_message())
        print('output: ' + response.get_result())
    except KeyboardInterrupt:
        print("检索世界库终止!")
        break
langchain版

In [ ]

import os
import getpass
import erniebot
from pydantic import BaseModel, Field  
from typing import Dict, List, Optional, Tuple, Union
from langchain.vectorstores import SupabaseVectorStore
from supabase.client import Client, create_client
from langchain.prompts import PromptTemplate
from langchain.llms.base import LLM
from langchain.chains import RetrievalQA
from langchain.memory import ConversationBufferMemory


# 认证鉴权
erniebot.api_type = 'aistudio'
erniebot.access_token = '{YOUR-ACCESS-TOKEN}'
# 配置Supabase
os.environ['SUPABASE_URL'] = getpass.getpass('Supabase URL:')
os.environ['SUPABASE_SERVICE_KEY'] = getpass.getpass('Supabase Service Key:')
supabase_url = os.environ.get("SUPABASE_URL")
supabase_key = os.environ.get("SUPABASE_SERVICE_KEY")
supabase_client: Client = create_client(supabase_url, supabase_key)

class EB(LLM):

    def __init__(self):
        super().__init__()

    @property
    def _llm_type(self) -> str:
        return "erniebot"

    def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
        prompt_list = []
        prompt_list.append(prompt)
        chat_completion = erniebot.ChatCompletion.create(model='ernie-bot', messages=[{"role": "user", "content": str(prompt_list)}])
        response = chat_completion.get_result()
        return response


class QuestionAnswer():
    def __init__(self, model_name):
        self.llm = EB()
        self.embedding = HuggingFaceEmbeddings(model_name=model_name)
        self.vector_store = vector_store = SupabaseVectorStore(
                                    client=supabase_client,
                                    embedding=embeddings,
                                    table_name="documents",
                                    query_name="match_documents",
                                )

        self.prompt_template = """基于以下已知信息,严格按照信息简洁和专业的来回答用户的问题,不需要回复"根据已知信息"。
                                                如果无法从中得到答案,请说 "非常抱歉!世界库知识检索失败!判断非本世界知识或产物。",不允许在答案中添加编造成分,答案请使用中文。
                                                已知内容:
                                                {context}
                                                问题:
                                                {question}"""
        self.promptTemplate = PromptTemplate(
                                    template=self.prompt_template,
                                    input_variables=["context", "question"]
                                )
        
    def generate(self, question):
        knowledge_chain = RetrievalQA.from_llm(
                                llm=self.llm,
                                retriever=self.vector_store.as_retriever(search_kwargs={"k": 5}),
                                prompt=self.promptTemplate)
        knowledge_chain.return_source_documents = True
        result = knowledge_chain({"query": question})
        response = result['result']
        return response

model_name = "/home/aistudio/models/Embeddings/text2vec-base-chinese"
qa = QuestionAnswer(model_name)
while True:
    try:
        question = input('user: ')
        response = qa.generate(question)
        print('output: ' + response)
    except KeyboardInterrupt:
        print("检索世界库终止!")
        break

以上就是本项目的所有内容了,希望你能从中学习到新的知识!

本地知识库+语言大模型=知域问答 本地知识库通常是指存储在本地计算机或服务器上的数据库或数据集,用于提供本地环境下的知识和信息。langchain是一个开发基于语言模型应用程序开发框架,链接面向用户程序和LLM之间的中间层。利用LangChain可以轻松管理和语言模型的交互,将多个组件链接在一起,比如各种LLM模型,提示模板,索引,代理等等。 阅读详情

相关推荐

构建本地大语言模型知识库问答系统

Ollama 是一个基于 Go 语言开发的简单易用的本地大语言模型运行框架。官方提供了类似 GitHub,DockerHub 一般的,可类比理解为 ModelHub,用于存放大语言模型的仓库(有 llama 2,mistral,qwen 等模型,同时你也可以自定义模型上传到仓库里来给别人使用)。除了基于 OpenAI、百度千帆大模型等在线大模型快速搭建知识库问答系统外,MaxKB 还支持与以 Ollama 为代表的本地私有大模型相结合,快速部署本地的知识库问答系统。,快速安装 MaxKB 应用。

sumatch的博客 3006

只需三步,本地打造自己的AI个人专属知识库

只需三步,本地打造自己的AI个人专属知识库

AAI666666的博客 4万+

【实际动手】搭建MaxKB 大模型和 RAG 的知识库问答系统

MaxKB,作为企业级知识库问答系统,以其强大的功能和灵活的部署方式,为企业提供了一种高效、智能的信息处理方案,更在AI技术的持续进步中展现出无限的潜力。它通过深度整合自然语言处理和机器学习技术,使得企业能够轻松应对数据洪流,实现信息的快速检索、精准分析和智能决策。展望未来,随着AI技术的进一步发展,MaxKB有望在知识管理和智能问答领域发挥更大的作用。它将继续推动企业知识资产的有效管理和利用,助力企业在激烈的市场竞争中保持领先。

longxiaotian718的博客 4160

大模型技术 | 基于大模型构建本地知识库

模型以其庞大的数据容量和深度学习能力,为处理复杂任务提供了前所未有的可能性。但在特定应用场景下仍面临挑战,尤其是在需要快速、准确响应的情境中。为了克服这些限制,构建一个基于大模型的本地知识库显得尤为重要。

python1234_的博客 4310

基于本地知识库的大模型搭建教程

基于本地知识库大模型搭建教程

qq_45179513的博客 9867

中文Sentence Embeddings:text2vec-base-chinese VS OpenAIEmbedding

每条数据包含三列,分别表示 sentence1、sentence2 和相似等级(Label),相似等级范围为 0~5,从数据集中每个Label选择相同的条数,数据集中Label=5有97条,那其他Label=0、1、2、3、4我们也分别选择97条;从两张图比较直观能看到,text2vec-base-chinese跟Label的吻合度可以,在余弦相似性的区分度上更剩一筹。为了让点可以散开,如果Label是0就把x平均分布到0~1之间,是1就把x平均分布到1~2之间,以此类推;两个model分别做了个效果图,

u013250861的博客 1619

大模型本地知识库+语言大模型=知域问答

本地知识库通常是指存储在本地计算机或服务器上的数据库或数据集,用于提供本地环境下的知识和信息。langchain是一个开发基于语言模型应用程序开发框架,链接面向用户程序和LLM之间的中间层。利用LangChain可以轻松管理和语言模型的交互,将多个组件链接在一起,比如各种LLM模型,提示模板,索引,代理等等。

xiangxueerfei的博客 1121

基于LangChain-Chatchat实现的RAG-本地知识库的问答应用[1]-最新版快速实践并部署(检索增强生成RAG大模型)

基于LangChain-Chatchat实现的RAG-本地知识库的问答应用[1]-最新版快速实践并部署(检索增强生成RAG大模型)

丨汀、的博客 5603

医学领域实现基于大模型和本地知识库的智能问答系统

随着医学与人工智能技术的快速崛起,伴随算法算力、数据等关键要素的积累和突破,人工智能技术在精准医学领域的科研应用也随之飞快增长,相关科研成果和学术论文数量逐年激增,医学影像人工智能涉及的技术如图像分割、病灶识别、病灶自动勾画、影像组学、深度学习模型构建和临床信息解析越来越趋于分析流程化,模块化,帮助越来越多的医生在临床科研实践中获得突破性的进展。次将对前沿的人工智能应用案例进行详细的解析,帮助学员快速实践ChatGPT加持下的临床科研应用方法,加快各单位有AI实战经验的高端人才培养。

xhlo521的博客 1557

ss524v100 调试cvbs输出

启用视频层3 dev2 对应 layer3在vdec与vo绑定的时候(不需要经过vpss),不能绑定错误,以下是绑定的程序。

2116

Win上通过Jconsole查看Java程序资源占用情况(教程总结,一篇就够了)

JConsole 是一个内置 Java 性能分析器,Java 5开始 引入了 JConsole。可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole来监控 Java 应用程序性能和跟踪 Java 中的代码。Jconsole工具查看程序的资源占用请求。安装jdk时bin目录有jconsole.exe工具,或者通过 Win + R,输入jconsole.exe启动jconsole( 可以从命令行直接输入jconsole。

明生的博客 6240

QAnything:网易开源本地知识库问答系统

QAAnything(QAnything) 是一个本地知识库问答系统,旨在支持各种文件格式和数据库,允许离线安装和使用。用户只需将任何本地存储的任何格式的文件拖放到系统中,即可获得准确、快速和可靠的答案。PDF(pdf)Word(docx)PPT(pptx)Eml(eml)TXT(txt)XLS(xlsx)CSV(csv)图像(jpg,jpeg,png)网页链接(html)数据安全,支持在整个过程中插拔网线的安装和使用。跨语言问答支持,可以自由切换中英文问答,

老皮的博客 4064

已解决-Parallels Desktop 16 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络

我是月球挖掘机,相信不少打工人为了尝鲜已经更新了MacOS 11 Big Sur,当然,苹果每次的系统大更新,都会给我们软件的功能无法使用惊喜,这次的也不例外。 这个问题是我在更新macOS Big Sur之后,Parallels Desktop打开虚拟机后,提示: 报错信息 网络初始化失败:您的虚拟机将继续正常运作,但将无法连接网络 这是我的软件版本: 起初我以为是我的虚拟机坏了,结果重装了一遍虚拟机,没有任何用处。我开始在网上找方法,只能找到那个使用命令行打开软件的命令,除此之外没有了

月球挖掘机 5万+

【教程】LLM集成进LangChain工具,并实现本地知识库的问答

LangChain提供了丰富的生态,可以非常方便的封装自己的工具,并接入到LangcChain的生态中,从而实现语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。本文将介绍下如何将本地的大模型服务集成进LangChain工具链中。

Tian_CMCC 8482

网络无线AP信号走场测试软件(Ekahau 使用说明)

每次开启 Ekahau 软件需要重复此过程,才可以正常使用。 双击“Ekahau Pro activation.reg”,如下图所示; 点击“Yes”按钮 ,进行注册表合并; 点击“OK”按钮,确认; 运行“Ekahau Pro” 点击“Close”关闭提示; 点击“OK”,关闭提示; ...

Reyn_观极 6417

uniapp [安卓苹果App端] - 实现获取手机日历读写权限+调用本机日历数据及操作功能+日历中插入事项事件提醒,检测权限手机日历权限是否开启并引导用户同意授权,uniApp app端开启日历授权

uni-app,权限,手机日历权限,安卓Android,苹果ios,uniapp安卓android获取本机日历读写权限使用,uni-app获取日历权限并实现插入事项事件功能 uniapp苹果IOS系统不支持怎么办,判断权限,权限被拒绝了怎么办,获取日历权限报错,读取日历数据农历阴历并操作插入移除,给用户手机日历中放入一条提示,UniApp调用日历进行读写,打包上架后如何获取,安卓ios权限检测,安卓和ios权限获取,uniapp的APP端日历读写权限与使用示例代码,如何开启日历权限,日历的新增事项和删除,判

🏆 前端领域优质创作者 1万+

Win10系统安装FastGPT知识库集成使用本地大模型问答

/ 已使用 json5 进行解析,会自动去掉注释,无需手动去除"lafEnv": "https://laf.dev" // laf环境。https://laf.run (杭州阿里云) ,或者私有化的laf环境。如果使用 Laf openapi 功能,需要最新版的 laf。},"vectorMaxProcess": 15, // 向量处理线程数量"qaMaxProcess": 15, // 问答拆分线程数量。

whosechance的博客 2592

【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)

在游戏发展史上,有些游戏以其简单而耐玩的特性,深深地烙印在了玩家的记忆中。《黄金矿工》就是其中之一,它曾经在4399等游戏平台上掀起了一股游戏热潮。这款游戏不仅给无数玩家带来了欢乐,还让他们体验到了挖掘金矿的刺激与乐趣。在这个项目中,我们将花费半天的时间,利用Unity引擎,重新打造这款经典小游戏。通过复刻《黄金矿工》,我们不仅是在向童年的回忆致敬,更是在挖掘游戏设计的精髓。在这个过程中,我们将学习如何实现游戏的核心玩法,设计简洁而有效的游戏机制。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2902

大模型+知识库:基于大模型构建本地知识库

模型以其庞大的数据容量和深度学习能力,为处理复杂任务提供了前所未有的可能性。但在特定应用场景下仍面临挑战,尤其是在需要快速、准确响应的情境中。为了克服这些限制,构建一个基于大模型的本地知识库显得尤为重要。

2301_82275412的博客 1971

基于深度学习YOLOv8的商品识别系统(深度学习 + UI界面 + 训练数据集 + Python代码)

如果使用自定义数据集,可以通过图像标注工具如LabelImg来标注每个商品的类别和边界框,并保存为YOLO格式的文本文件。bash复制编辑/dataset/images/train/val/labels/train/val这样,我们就准备好了数据集,可以开始训练YOLOv8模型。本文介绍了如何使用YOLOv8构建一个商品识别系统,包括从数据准备到模型训练,再到UI界面的开发。通过深度学习技术,尤其是YOLOv8的高效目标检测能力,我们能够快速实现商品识别并集成到实际应用中。

YOLO 302

STM32 cubeMX配置串口重定向

这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。使用printf函数和上位机通信是非常的方便的。希望大家都能够掌握。

m0_49476241的博客 4572

大模型技术之基于大模型构建本地知识库!

模型以其庞大的数据容量和深度学习能力,为处理复杂任务提供了前所未有的可能性。但在特定应用场景下仍面临挑战,尤其是在需要快速、准确响应的情境中。为了克服这些限制,构建一个基于大模型的本地知识库显得尤为重要。

xiangxueerfei的博客 3648

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

QAnything,您的开源本地知识库问答神器

QAAnything(QAnything) 是一个本地知识库问答系统,旨在支持各种文件格式和数据库,允许离线安装和使用。用户只需将任何本地存储的任何格式的文件拖放到系统中,即可获得准确、快速和可靠的答案。

m0_65555479的博客 1389

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

上一篇: 第十九届全国大学生智能汽车竞赛智慧交通组线上资格赛baseline
下一篇: 【问卷猩】基于 ERNIE Bot 和 LLM2Json 的问卷生成器
军哥说AI
博客等级 码龄19年 1420粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

军哥说AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值