Непредвиденная ошибка аргумента ключевого слова Llama_index в модели ChatGPT Python

Я тестирую пару широко опубликованных моделей GPT, просто пытаясь намочить ноги, и сталкиваюсь с ошибкой, которую не могу устранить.

Я запускаю этот код:

      from llama_index import SimpleDirectoryReader, GPTListIndex, GPTSimpleVectorIndex, LLMPredictor, PromptHelper
from langchain import OpenAI
import gradio as gr
import sys
import os

os.environ["OPENAI_API_KEY"] = 'MYKEY'

def construct_index(directory_path):
    max_input_size = 4096
    num_outputs = 512
    max_chunk_overlap = 20
    chunk_size_limit = 600

    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)

    llm_predictor_gpt = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="text-davinci-003", max_tokens=num_outputs))

    documents = SimpleDirectoryReader(directory_path).load_data()

    index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor_gpt, prompt_helper=prompt_helper)

    index.save_to_disk('index.json')

    return index

def chatbot(input_text):
    index = GPTSimpleVectorIndex.load_from_disk('index.json')
    response = index.query(input_text, response_mode="compact")
    return response.response




iface = gr.Interface(fn=chatbot,
                     inputs=gr.inputs.Textbox(lines=7, label="Enter your text"),
                     outputs="text",
                     title="Custom-trained AI Chatbot")

index = construct_index("salesdocs")
iface.launch(share=False)

И я продолжаю получать эту ошибку

        File "C:\Users\Anonymous\anaconda3\lib\site-packages\llama_index\indices\vector_store\base.py", line 58, in __init__
    super().__init__(
TypeError: __init__() got an unexpected keyword argument 'llm_predictor'

Мне было трудно найти много документации по ошибкам индекса Ламмы, надеясь, что кто-нибудь укажет мне правильное направление.

2 ответа

Вам необходимо изменить код согласно этому примеру: Шаблон использования LlamaIndex

По сути, вам нужно отправить эту информацию как ServiceContext:

      from llama_index import ServiceContext

service_context = ServiceContext.from_defaults(
  llm_predictor=llm_predictor, 
  prompt_helper=prompt_helper,
  embed_model=embedding_llm,
  )
    
index = GPTSimpleVectorIndex(nodes, service_context=service_context)

Но большинство онлайн-руководств являются более старыми версиями. Значит, вы заблуждались, и я тоже.

Чтобы получить еще больше ответа, если вам позже понадобится загрузить созданный индекс, вы также должны отправить service_context:

      index = GPTSimpleVectorIndex.load_from_disk(
           filename, service_context=service_context
        )

В противном случае код сломается при загрузке индексного файла.

Я получил ту же ошибку, когда попробовал этот пример. Самое простое решение — использоватьfrom_documentиспользуя настройки по умолчанию:

          index = GPTSimpleVectorIndex.from_documents(documents)

Но если вы хотите установить свой собственный контекст подсказки и llm_predictor, создайте контекст и передайте егоGPTSimpleVectorIndex.from_document()вызов:

      def construct_index(directory_path):
    max_input_size = 4096
    num_outputs = 512
    max_chunk_overlap = 20
    chunk_size_limit = 600

    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)

    llm_predictor_gpt = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="text-davinci-003", max_tokens=num_outputs))

    documents = SimpleDirectoryReader(directory_path).load_data()

    # index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor_gpt, prompt_helper=prompt_helper)

    service_context = ServiceContext.from_defaults(
        llm_predictor=llm_predictor, prompt_helper=prompt_helper
    )

    index = GPTSimpleVectorIndex.from_documents(documents,service_context=service_context)

    index.save_to_disk('index.json')

    return index

Рассмотрите возможность использованияmodel_name="gpt-3.5-turbo"это быстрее и стоит дешевле.

      llm_predictor_gpt = LLMPredictor(llm=ChatOpenAI(temperature=0.7,
   model_name="gpt-3.5-turbo", max_tokens=num_outputs))
Другие вопросы по тегам