相信对于许多从事Python数据分析工作的小伙伴来说,大家都对尝试使用PandasAI所带来的智能化便捷性充满兴趣。然而,由于缺乏OpenAI的API密钥,许多人只能望洋兴叹,无法真正体验到这一技术带来的便利。
现在有一种替代方案,可以让我们绕过这个限制,那就是使用LlamaIndex搭配本地部署的语言模型(LM),从而实现与PandasAI相似的功能。LlamaIndex是一个开源项目,它能够帮助用户构建索引并查询大型语言模型,从而使得数据查询变得更加智能和高效。具体的操作步骤和技术细节,可以参考LlamaIndex的官方文档:
Pandas Query Engine - LlamaIndex
下面,我们直接来看一下如何通过简单的几行代码来实现这一功能:
1)安装依赖包+本地模型phi3
!pip install llama-index-experimental
!pip install llama-index
!pip install llama-index-llms-ollama
安装本地phi3模型,怎么安装ollama请查看前面教程,这里不再赘述。
ollama run phi3:3.8b
2)加载python包
import logging
import sys
import pandas as pd
from llama_index.llms.ollama import Ollama
from llama_index.experimental.query_engine import PandasQueryEngine
3)准备数据、配置模型:
代码中llm = Ollama(model="phi3:3.8b", request_timeout=360)加载本地模型。
# 准备数据
df = pd.DataFrame(
{
"city": ["Toronto", "Tokyo", "Berlin"],
"population": [2930000, 13960000, 3645000],
}
)
## 构建LLM模型对象
llm = Ollama(model="phi3:3.8b", request_timeout=360)
# 创建查询引擎
query_engine = PandasQueryEngine(df=df, llm=llm, verbose=True, synthesize_response=True)
4)查询测试1:
# 查询最高人口数
response = query_engine.query(
"哪个city的population最高 ?"
)
#print(str(response.metadata["pandas_instruction_str"]))
print(str(response.metadata["raw_pandas_output"]))
5)查询测试2:
# 查询平均数
response2 = query_engine.query(
"平均population是多少 ?",
)
print(str(response2.metadata["raw_pandas_output"]))
标签:index,示例,llamaindex,pandasai,phi3,llama,query,import,查询
From: https://blog.csdn.net/m0_38007743/article/details/142231183