Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Oii, Jhonata! Tudo bom?
Sobre o erro FileNotFounderError indica que o arquivo dados/dados_ecomart.txt não foi encontrado. Sendo assim, veja se o caminho está correto e se está na pasta certa. Teste usar um caminho absoluto do arquivo e que o arquivo esteja rodando dentro do diretório conforme na aula.
O segundo erro, TypeError: Assistants.create() got a unexpected keyword argument 'file_ids', é sobre a função create() da API da OpenAI não aceita o argumento file_ids devido a uma atualização.
Na documentação, vemos que a versão do assistente usada no curso é a V1 e a versão atual da ferramenta é a V2. Então é preciso fazer algumas alterações no código para funcionar, veja:
tools, o tipo retriveval não existe mais, passou a ser file_search. Segue o exemplo:tools = [
{
'type': 'file_search'
}
]
vector_store, então no arquivo do assistente ficará da seguinte forma:def create_thread(vector_store):
return client.beta.threads.create(
tool_resources={
'file_search': {
'vector_store_ids': [vector_store.id]
}
}
)
def create_vector_store():
vector_store = client.beta.vector_stores.create(name='Ecomart Vector Store')
file_paths = [
'data/ecomart_data.txt',
'data/ecomart_politics.txt',
'data/ecomart_products.txt'
]
file_streams = [open(path, 'rb') for path in file_paths]
client.beta.vector_stores.file_batches.upload_and_poll(
vector_store_id=vector_store.id,
files=file_streams
)
return vector_store
file_ids, no arquivo do assistente para tool_resources, por exemplo:def create_assistant(vector_store):
assistant = client.beta.assistants.create(
name='Ecomart Assistant',
instructions=f'''
Você é um chatbot de atendimento a clientes de um e-commerce.
Você não deve responder perguntas que não sejam dados do ecommerce informado!
Além disso, acesse os arquivos associados a você e a thread para responder as perguntas.
''',
model=model,
tools=tools,
tool_resources={
'file_search': {
'vector_store_ids': [vector_store.id]
}
}
)
return assistant
get_json inclua o vectr_store_id: if not os.path.exists(filename):
vector_store = create_vector_store()
thread = create_thread(vector_store)
assistant = create_assistant(vector_store)
data = {
'assistant_id': assistant.id,
'vector_store_id': vector_store.id,
'thread_id': thread.id
}
client.neta.threads.messages.create() o parâmetro file_ids não funcionará, então pode-se retirar ou comentar para ocultá-lo: client.beta.threads.messages.create(
thread_id=thread_id,
role="user",
content=prompt
# file_ids=file_ids
)
Segue os artigos das documentações que informam sobre a atualização:
🔗 Assistentes de pesquisa de arquivo
🔗 Guia de migração de assistentes
Ambas páginas podem abrir em inglês, caso não se sinta confortável com o idioma, utilize o tradutor automático do navegador.
Espero que as orientações te ajude a resolver o problema.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado!