Ei, Clarissa, tudo bem?
O erro diz que o Python que tentou ler uma string como JSON mas o formato dela está inválido.
Peço que revise todo o seu código, dando atenção à sintaxe, por exemplo, o JSON é muito sensível e todas as chaves (nomes de propriedades) precisam estar entre aspas duplas (") e não simples (') ou sem aspas.
Deixo o código aqui para a conferência:
# Etapa 1: Ler o arquivo de resenhas
lista_de_resenhas = []
with open("resenhas-app-gpt.txt", "r", encoding="utf-8") as arquivo:
for linha in arquivo:
lista_de_resenhas.append(linha.strip())
print(lista_de_resenhas)
# contato_com_llm.py
from openai import OpenAI
client_openai = OpenAI(
base_url="http://127.0.0.1:1234/v1",
api_key="lm-studio"
)
def recebe_linha_e_retorna_json(linha):
resposta_do_llm = client_openai.chat.completions.create(
model="google/gemma-3-1b",
messages=[
{"role": "system", "content": """
Você é um especialista em análise de dados e conversão de dados para JSON.
Você receberá uma linha de texto que é uma resenha de um aplicativo em um marketplace online.
Eu quero que você analise essa resenha, e me retorne um JSON com as seguintes chaves:
- 'usuario': o nome do usuário que fez a resenha
- 'resenha_original': a resenha no idioma original que você recebeu
- 'resenha_pt': a resenha traduzida para o português
- 'avaliacao': uma avaliação se essa resenha foi 'Positiva', 'Negativa' ou 'Neutra' (apenas uma dessas opções)
"""},
{"role": "user", "content": f"Resenha: {linha}"}
],
temperature=0.0
)
return resposta_do_llm.choices[0].message.content
from contato_com_llm import recebe_linha_e_retorna_json
import json
lista_de_resenhas_json = []
for resenha in lista_de_resenhas:
resenha_json = recebe_linha_e_retorna_json(resenha)
resenha_dict = json.loads(resenha_json)
lista_de_resenhas_json.append(resenha_dict)
print(lista_de_resenhas_json)
def contador_e_juntador(lista_de_dicionarios):
contador_positivas = 0
contador_negativas = 0
contador_neutras = 0
for dicionario in lista_de_dicionarios:
if dicionario['avaliacao'] == 'Positiva':
contador_positivas += 1
elif dicionario['avaliacao'] == 'Negativa':
contador_negativas += 1
else:
contador_neutras += 1
lista_de_dicionarios_str = [str(dicionario) for dicionario in lista_de_dicionarios]
textos_unidos = "#####".join(lista_de_dicionarios_str)
return contador_positivas, contador_negativas, contador_neutras, textos_unidos
pos, neg, neut, textos = contador_e_juntador(lista_de_resenhas_json)
print(f"Positivas: {pos}")
print(f"Negativas: {neg}")
print(f"Neutras: {neut}")
print(textos)
Espero que dê certinho, se o erro persistir, compartilhe o seu código para podermos investigar melhor.
Bons estudos e até mais!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado