API ChatGPT Специально обученный чат-бот с искусственным интеллектом, отвечающий «Нет» на запрос Python
Я подключаюсь к своему первому чат-боту. На основе процесса, описанного здесь:https://beebom.com/how-train-ai-chatbot-custom-knowledge-base-chatgpt-api/
Я создал код, который он предложил, чтобы ChatGPT анализировал мой PDF-файл. Однако код был немного устаревшим, и мне пришлось внести некоторые изменения. Вот что у меня есть сейчас:
from llama_index import *
from langchain.chat_models import ChatOpenAI
import gradio as gr
import sys
import os
import openai
os.environ["OPENAI_API_KEY"] = 'XXXX'
openai.api_key = "XXXX"
documents = ""
service_context = ""
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, chunk_overlap_ratio=0.1, chunk_size_limit=chunk_size_limit)
llm_predictor = LLMPredictor(llm=ChatOpenAI(temperature=0.7, model_name="gpt-3.5-turbo", max_tokens=num_outputs))
documents = SimpleDirectoryReader(directory_path).load_data()
service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor, prompt_helper=prompt_helper)
index = GPTVectorStoreIndex.from_documents(documents, service_context=service_context)
# apparently this saves it to disk?
index.storage_context.persist(persist_dir='docs')
storage_context = StorageContext.from_defaults(persist_dir='docs')
index = load_index_from_storage(storage_context)
return index
def chatbot(input_text):
index = GPTVectorStoreIndex.from_documents(documents, service_context=service_context)
index.storage_context.persist(persist_dir='docs')
storage_context = StorageContext.from_defaults(persist_dir='docs')
index = load_index_from_storage(storage_context)
# tried this method as well with no success instead of above
#index = GPTVectorStoreIndex.from_documents(documents, service_context=service_context)
query_engine = index.as_query_engine()
response = query_engine.query(input_text)
# am I returning the correct object here? I believe its supposed to be JSON?
return response
iface = gr.Interface(fn=chatbot,
inputs=gr.components.Textbox(lines=7, label="Enter your text"),
outputs="text",
title="Custom-trained AI Chatbot")
index = construct_index("docs")
iface.launch(share=True)
Когда я запускаю программу, ошибок нет, и говорится, что она работает на моем IP. Когда я подхожу к чат-боту, все выглядит нормально, пока я не задаю вопрос. Потом просто продолжает говорить "Нет"
В Консоли ошибок и предупреждений нет, программа продолжает работать. Он просто продолжает говорить «Нет», когда я его запрашиваю. Где я ошибаюсь? И я не на 100% понимаю код, кстати, это серьезная модификация исходного примера, чтобы заставить все библиотеки работать. Если бы кто-то мог просто объяснить, что происходит, это было бы оценено. Спасибо, Дж.
1 ответ
Функция чат-бота возвращаетсяresponse=None
который просто собирается в компоненте выходного текстового поля. Я предлагаю использоватьdebug=True
в iface.launch(). Более подробную информацию можно найти здесь - https://www.gradio.app/docs/blocks#blocks-launch-arguments .