RAGFlow
如何部署RAGFlow
从git种拉取ragflow项目
$ git clone https://github.com/infiniflow/ragflow.git
使用docker创建容器
$ cd ragflow/docker
$ docker compose -f docker-compose.yml up -d
运行容器启动ragflow
Vanna
什么是Vanna?
在学习Vanna之前,需要了解的是什么Vanna?
Vanna简单来说是一种基于大模型的信息检索框架,也就是RAG框架,主要研究的方向是通过自然语言生成SQL语句。
为什么需要使用Vanna?
用特定的数据训练Vanna,就能够实现通过生成对应的sql,就能够直接从数据库中检索出有用的信息,这对数据检索是一种新的方向。
如何部署Vanna
Vanna的部署十分的简单,事实上,你只需要下载Vanna的库就能够使用Vanna了。
pip install vanna
使用示例:
class MyVanna(ChromaDB_VectorStore, OpenAI_Chat):
def __init__(self, config=None):
ChromaDB_VectorStore.__init__(self, config=config)
OpenAI_Chat.__init__(self, config=config)
vn_chroma = MyVanna(config={'api_key': OPENAI_API_KEY, 'model': 'gpt-3.5-turbo'})
vn_chroma.connect_to_sqlite('https://vanna.ai/Chinook.sqlite')
def test_vn_chroma():
existing_training_data = vn_chroma.get_training_data()
if len(existing_training_data) > 0:
for _, training_data in existing_training_data.iterrows():
vn_chroma.remove_training_data(training_data['id'])
df_ddl = vn_chroma.run_sql("SELECT type, sql FROM sqlite_master WHERE sql is not null")
for ddl in df_ddl['sql'].to_list():
vn_chroma.train(ddl=ddl)
sql = vn_chroma.generate_sql("What are the top 7 customers by sales?")
df = vn_chroma.run_sql(sql)
print(df)
assert len(df) == 7
if __name__ == '__main__':
test_vn_chroma()
部署RAGFlow + Vanna