import requests from flask import Flask, render_template, request, send_from_directory from datetime import datetime from bs4 import BeautifulSoup app = Flask(__name__) with open('i.txt', 'r') as file: data = file.read() API_URL = "https://api-inference.huggingface.co/models/mistralai/Mixtral-8x7B-Instruct-v0.1" headers = {"Authorization": f"Bearer hf{data}"} def query(payload): response = requests.post(API_URL, headers=headers, json=payload) return response.json() API_URLAR = "https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-tc-big-en-ar" def queryar(ar): response = requests.post(API_URLAR, headers=headers, json=ar) return response.json() conversation_history = [] def generate_response(user_input): bitcoin_price, current_time = get_bitcoin_price() result = get_div_content(url) new_query = { "inputs": f"information about yourself: you are helpful assistant and your name is (Niron) , you are trained and proggramed by Mr.omar nuwara he is create you for btc trad and predicition start chat with user with use good Emojeis\n\nBtc Price Now :${bitcoin_price} date and time now: {current_time}\n\n Bitcoin history Tidy is (Date/open/high/low/close/adj close/Volume): {result}\n\nLast news:{news}\n\ntask:complete the reesponse:\n\nconversation history:{conversation_history}\n\nUser message:{user_input}\n\nmake sure to response about it and don't generate alot of words just based on the user message and Use Emojies\n\nresponse:", "parameters": { "top_k": 100, "top_p": 0.9, "temperature": 0.5, "repetition_penalty": 1.2, "max_new_tokens": 512, "max_time": 0, "return_full_text": True, "num_return_sequences": 1, "do_sample": False }, "options": { "use_cache": False, "wait_for_model": False } } output = query(new_query) generated_text = output[0]['generated_text'] response_start = generated_text.find('response:') + len('response:') response_end = generated_text.find('(end response)') response_text = generated_text[response_start:response_end].strip() note_index = response_text.find("Note:") if note_index != -1: response_text = response_text[:note_index].strip() instruction_index = response_text.find("### Instruction:") if instruction_index != -1: response_text = response_text[:instruction_index].strip() response_text = response_text.strip().replace('\n', '
') return response_text def get_bitcoin_price(): current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") url = 'https://api.coindesk.com/v1/bpi/currentprice.json' response = requests.get(url) if response.status_code == 200: data = response.json() bitcoin_price = data['bpi']['USD']['rate'] return bitcoin_price, current_time @app.route('/assets/') def send_static(path): return send_from_directory('assets', path) @app.route('/') def index(): result = get_div_content(url) news = get_news(url) return render_template('admin.html') @app.route('/chat', methods=['POST']) def chat(): user_input = request.get_json()['user_input'] # Generate AI response based on user input response_text = generate_response(user_input) conversation_history.append({"User": user_input, "NIRON": response_text}) # Update bitcoin price and current time bitcoin_price, current_time = get_bitcoin_price() return response_text @app.route('/trans') def trans(): news = get_news(url) result = get_div_content(url) return render_template('arabic.html') @app.route('/arabic', methods=['POST']) def arabic(): user_input = request.get_json()['user_input'] # Generate AI response based on user input response_text = generate_response(user_input) conversation_history.append({"User": user_input, "\nAI": response_text}) # Translate the response to Arabic using the Hugging Face API translation_payload = { "inputs": response_text, } output = queryar(translation_payload) translated_response = output[0]['translation_text'] # Append the conversation history # Update bitcoin price and current time bitcoin_price, current_time = get_bitcoin_price() return translated_response def get_div_content(url): response = requests.get(url) soup = BeautifulSoup(response.content, 'html.parser') div_content = soup.find('div', {'id': '45'}) if div_content: return div_content else: return None url = "https://dooratre-info.hf.space/?logs=container&__sign=eyJhbGciOiJFZERTQSJ9.eyJyZWFkIjp0cnVlLCJwZXJtaXNzaW9ucyI6eyJyZXBvLmNvbnRlbnQucmVhZCI6dHJ1ZX0sIm9uQmVoYWxmT2YiOnsia2luZCI6InVzZXIiLCJfaWQiOiI2NWIyYzMyNjJiZTk2NjBmMGIxMjg0MDAiLCJ1c2VyIjoiRG9vcmF0cmUifSwiaWF0IjoxNzEyNjgwNTY4LCJzdWIiOiIvc3BhY2VzL0Rvb3JhdHJlL2luZm8iLCJleHAiOjE3MTI3NjY5NjgsImlzcyI6Imh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28ifQ.R_PX6Hw5SMheYTQWPGe1Qla9q8gVBU0mAFF_u8Iad06jSpZ9sPzZqquSowWn7PGVLRYBW21DnvqSwXIoNZ4CAA" result = get_div_content(url) print(result) @app.route('/clear_history') def clear_history(): global conversation_history conversation_history = [] return 'Conversation history cleared successfully' def get_news(url): response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") news = [] for text in soup.stripped_strings: news.append(text) return news url = "https://www.newsbtc.com/" news = get_news(url) print(news) if __name__ == '__main__': app.run(host="0.0.0.0", port=7860)