PandasQueryEngine из llama-index не может выполнить код со следующей ошибкой: неверный синтаксис (строка 0)
У меня есть следующий код. Я пытаюсь использовать локальную модель llama2-chat-13B. Инструкции кажутся хорошими, но окончательный результат выдает ошибку.
import logging
import sys
from IPython.display import Markdown, display
import pandas as pd
from llama_index.query_engine import PandasQueryEngine
df = pd.read_csv('./data/test.csv')
df.head()
service_context = ServiceContext.from_defaults(llm="local", embed_model="local")
query_engine = PandasQueryEngine(df=df, verbose=True, service_context=service_context)
response = query_engine.query("What is the size of the dataframe")
display(Markdown(f"<b>{response}</b>"))
Вот результат:
> Pandas Instructions:
Конечно, буду рад помочь! На основе входного запроса «Каков размер кадра данных?» мы можем создать исполняемый код Python с помощью Pandas следующим образом:
import pandas as pd
df_size = len(df)
Этот код даст нам размер кадра данных, то есть количество содержащихся в нем строк. len()
Функция возвращает длину списка или массива, и в этом случае она возвращает количество строк в кадре данных.
Обратите внимание, что нам не нужно использовать кавычки вокруг имени переменной.df
потому что он уже определен как объект DataFrame pandas. Так жеeval()
Здесь нет необходимости, поскольку мы выполняем только простое выражение Python.
> Pandas Output: There was an error running the output as Python code. Error message: unexpected indent (<unknown>, line 1)
Traceback (most recent call last):
File "/opt/conda/envs/llm/lib/python3.11/site-packages/llama_index/query_engine/pandas_query_engine.py", line 60, in default_output_processor
tree = ast.parse(output)
^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/llm/lib/python3.11/ast.py", line 50, in parse
return compile(source, filename, mode, flags,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<unknown>", line 1
Sure, I'd be happy to help! Based on the input query "What is the size of the dataframe?", we can create an executable Python code using Pandas as follows:
IndentationError: unexpected indent
llama_print_timings: load time = 3552.20 ms
llama_print_timings: sample time = 95.95 ms / 165 runs ( 0.58 ms per token, 1719.63 tokens per second)
llama_print_timings: prompt eval time = 0.00 ms / 1 tokens ( 0.00 ms per token, inf tokens per second)
llama_print_timings: eval time = 24428.80 ms / 165 runs ( 148.05 ms per token, 6.75 tokens per second)
llama_print_timings: total time = 24965.81 ms
There was an error running the output as Python code. Error message: unexpected indent (, line 1)
Может ли это быть потому, что я не использую OpenAI? Любые идеи по решению этой проблемы приветствуются. Существуют ли какие-либо альтернативы PandasQueryEngine, которые можно использовать с любой моделью по моему выбору для анализа кадра данных с использованием естественного языка?
Я попробовал приведенный выше код и ожидал, что он напечатает df_size как вывод Pandas.