Здравствуйте взял готовый код из интернета с юзер-ботом-нейронкой которая по роли пишет посты(занимается спамом рассылкой называйте как хотите) т.е если я задам условную роль "ты ворона которая ест какакши" нейронка будет писать что то вроде "я просто ворона которая ест какашки мне 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()