Задать вопрос
@IKONKA

Неизвестная ошибка: 'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256) ЧТО ДЕЛАТЬ?

Здравствуйте взял готовый код из интернета с юзер-ботом-нейронкой которая по роли пишет посты(занимается спамом рассылкой называйте как хотите) т.е если я задам условную роль "ты ворона которая ест какакши" нейронка будет писать что то вроде "я просто ворона которая ест какашки мне 25" вообщем к делу..

Ошибка:
Неизвестная ошибка: 'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256)
Traceback (most recent call last):
  File "C:\Users\1\Desktop\ChatGPT_Telegram_Commentator-main\main.py", line 83, in write_comments_in_telegram
    self.client.send_message(entity=name, message=output, comment_to=post.id)


код:

from telethon.sync import TelegramClient
import requests
from dotenv import load_dotenv
import os
import time
import json

class Telegram_Commentator:
    def __init__(self):
  
        self.channels: list = ['energynewz', 'novosti_svo_russia', 'novosti_24_ru', 'voenacher']
        self.openrouter_api_key = ''1---DoMqk0A'  # Ключ API
        self.api_id: int = 2  # API ID из Telegram
        self.api_hash: str = '1'  # API Hash из Telegram
        self.your_site_url = "https://t.me/2"  # URL вашего сайта
        self.your_site_name = "ТГК 2"  # Название вашего сайта

    def start_telegram_client(self):
        self.client = TelegramClient('session_name', self.api_id, self.api_hash)
        self.client.start()

    def generate_comment(self, post_text):
        url = "https://openrouter.ai/api/v1/chat/completions"
        headers = {
            "Authorization": f"Bearer {self.openrouter_api_key}",
            "HTTP-Referer": self.your_site_url,
            "X-Title": self.your_site_name,
            "Content-Type": "application/json; charset=UTF-8"
        }

        post_text = post_text.replace('\n', ' ').replace('\r', '').strip()  # Убираем нежелательные символы

        data = {
            "model": "openai/gpt-4-turbo-preview",
            "messages": [
                {
                    "role": "system",
                    "content": "Вы патриот России и девушка. Пишите осмысленные человекоподобные яркие комментарии до 11 слов."
                },
                {
                    "role": "user",
                    "content": f"Напишите комментарий к этому посту: {post_text}"
                }
            ]
        }

        try:
            # Преобразуем в JSON с ensure_ascii=False, чтобы сохранить кириллицу
            response = requests.post(url, headers=headers, json=data, timeout=60)  # Используем параметр json
            response.raise_for_status()  # Проверка на ошибки HTTP
            result = response.json()

            if 'choices' in result and len(result['choices']) > 0:
                print("Комментарий получен.")
                return result['choices'][0]['message']['content'].strip()
            else:
                print("Комментарий не получен, возвращаем стандартный текст.")
                return "Даже не знаю, что тут сказать...."
        except requests.exceptions.RequestException as e:
            print(f"Ошибка при отправке запроса: {e}")
            return "Даже не знаю, что тут сказать...."
        except Exception as e:
            print(f"Неизвестная ошибка: {e}")
            return "Даже не знаю, что тут сказать...."

    def write_comments_in_telegram(self):
        last_message_ids = {name: 0 for name in self.channels}
        for name in self.channels:
            try:
                channel_entity = self.client.get_entity(name)
            except ValueError as e:
                self.client.send_message(f'{self.owner_ID}', f"Ошибка при получении информации о канале '{name}': {e}")
                print("Ошибка, проверьте личные сообщения!")
                continue
            messages = self.client.get_messages(channel_entity, limit=1)
            if messages:
                for post in messages:
                    if post.id != last_message_ids[name]:
                        last_message_ids[name] = post.id
                        output = self.generate_comment(post.text)
                        try:
                            time.sleep(25)
                            self.client.send_message(entity=name, message=output, comment_to=post.id)
                            self.client.send_message(f'{self.owner_ID}', f'Комментарий отправлен!\nСсылка на пост: <a href="https://t.me/{name}/{post.id}">{name}</a>\nСам пост: {post.text[:90]}\nНаш коммент: {output}', parse_mode="html")
                            print('Успешно отправлен коммент, проверьте личные сообщения')
                        except Exception as e:
                            self.client.send_message(f'{self.owner_ID}', f"Ошибка при отправке комментария в канал '{name}': {e}")
                            print('Ошибка, проверьте личные сообщения')
                        finally:
                            time.sleep(25)

    def run(self):
        self.start_telegram_client()
        while True:
            self.write_comments_in_telegram()


# запускаем наше чудо
AI_commentator = Telegram_Commentator()
AI_commentator.run()
  • Вопрос задан
  • 49 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Lord_of_Rings
@Lord_of_Rings
Северный странник. Злой, но добрый
ЧТО ДЕЛАТЬ?
Не заниматься копипастом, идти учить язык и читать правила сервиса
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
11 дек. 2024, в 22:30
250000 руб./за проект
11 дек. 2024, в 22:15
10000 руб./за проект
11 дек. 2024, в 22:10
3000 руб./за проект