Write advanced flask tool to integrate ai apis
Budget: $250 – $750 USD
You will be creating a data pipeline for me that is in the form of a monolith flask application. Realistically this needs an actual senior software person to implement and they have to have a good computer with a good graphics card. I would like you to create a flask monolith application with a simple jinja2 html frontend utilizing bootstrap and a backend that calls and integrates external APIs together in the way I have specified below (I will send a more in-depth spec).
Step 1. The simple frontend written with bootstrap and jinja 2 shall contain a long text box and a submit button. Fancing styling is not necessary. This is a backend tool so t doesnt need auth or anything like that. The user is expected to enter a search engine keyword idea, one for each line. The user clicks submit. The data goes to the python 3.11 backend. The backend shall split the keywords into one per line. It shall pass the keywords through a locally-running instance of keyword sheeter (https://github.com/wassname/keywordshitter2/blob/master/public/index.html). Keyword sheeter shall only be allowed to run for 20 seconds. There should be a counter on the frontend to let the user know the progress. All script progress updates shall be sent to the frontend in the form of text. After keyword sheeter is running for 20 seconds, it should send the text results to the python flask backend you are building. The python flask backend shall get rid of all 1-2 word keywords, and all of the keywords greater than 6 words. The backend shell then take the 3-5 letter keywords in bulk, and pass them to step 2.
Step 2: The script shall take the top 25 keywords in the list, and remove the rest (the function should be configurable to allow the number of keywords to be dynamically set by passing an argument to the function). You will pass these 25 keywords into the PAID API Dataforseo (https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/live/) , at the endpoint I just linked. Ths is a PAID API and you are required to have your own account that I will not provide to you. You will send each of the keywords to this API as shown in the python example on the page. Please note you have to code the auth part where you login before you can send the API requests. The dataforseo REST API will return a response. The response as shown on the webpage example is long and it contains the result key which returns a list. You will process each of these items in the list and get rid of the ones that have "competition" = "HIGH" and "competition" = "MEDIUM". Sort the rest by search volume, competition_index in the function and then you want to return a dictionary in this functiion. The dictionary returned should key the keyword as a key and everything else that the dataforseo API returned as a value. If there arent any good ones or a very small number after you perform the filter, do it again for the next 25 keywords until you have at least 5 results.
3. Return this to the USER and show as a table on the jinja2 bootstrap frontend with checkboxes on the left. The user should be able to select the checkboxes containing the keywords and press submit. When the user submits these keywords, they shall each go to the python backend as a list. The backend shall create x articles per keyword (x is randomized in a range. for example 3-6). The articles shouldnt be fully written, only bullet points. You will create this with an AI. Use locally running LLaMA AI or 175B BLOOM. There should be around 10 bullet points per article. The AI should also send some web sources. This means you have to write a python function that submits to the locally running AI and takes the response and converts to the bullet points . This is only the first part.
4. We are now going to create some code with chatgpt API. This is also PAID an you must have your own account. I will not provide you with an account. All we are going to do is make chatgpt generate a php website code for the site . It shouldnt be wordpress or a CMS, we want raw code. The code should use bootstrap and be able to display articles in the main body text. it should have a sidebar. The code should have a frontpage. The code should have a menu, logo and footer. The menu should be created with a list <ul>, <li><a>..... . This should be unique each time we run the tool. I just want the tool to output the website code with each "article" with bullet points as the text. We want a frontpage. Its alright if chatgpt outputs code that is not completely compliant. I am a senior and i can fix it, we just want to automate a lot of it.
5. Return a response to the jinja2 frontend. The response to the user should tell the user the folder of the output on the local computer. THe response should also send the bullet point articles, one article for each set of 10 bullet points. The articles should be written in markdown.
I can code and am very senior with python. I will check your code and make sure it has docstrings and a real unit test suite and that the style isnt awful. If it has a lot of bugs or its very bad code, i will send it back to you for revision. Creating tests and docstrings without overly long functions is a requirement for delivery.
If you got to the end of this and have read the requirements, please p lace "SEO" and "AI" in your b-id. I will not consider your b-id unless it has these words in it.
Step 1. The simple frontend written with bootstrap and jinja 2 shall contain a long text box and a submit button. Fancing styling is not necessary. This is a backend tool so t doesnt need auth or anything like that. The user is expected to enter a search engine keyword idea, one for each line. The user clicks submit. The data goes to the python 3.11 backend. The backend shall split the keywords into one per line. It shall pass the keywords through a locally-running instance of keyword sheeter (https://github.com/wassname/keywordshitter2/blob/master/public/index.html). Keyword sheeter shall only be allowed to run for 20 seconds. There should be a counter on the frontend to let the user know the progress. All script progress updates shall be sent to the frontend in the form of text. After keyword sheeter is running for 20 seconds, it should send the text results to the python flask backend you are building. The python flask backend shall get rid of all 1-2 word keywords, and all of the keywords greater than 6 words. The backend shell then take the 3-5 letter keywords in bulk, and pass them to step 2.
Step 2: The script shall take the top 25 keywords in the list, and remove the rest (the function should be configurable to allow the number of keywords to be dynamically set by passing an argument to the function). You will pass these 25 keywords into the PAID API Dataforseo (https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/live/) , at the endpoint I just linked. Ths is a PAID API and you are required to have your own account that I will not provide to you. You will send each of the keywords to this API as shown in the python example on the page. Please note you have to code the auth part where you login before you can send the API requests. The dataforseo REST API will return a response. The response as shown on the webpage example is long and it contains the result key which returns a list. You will process each of these items in the list and get rid of the ones that have "competition" = "HIGH" and "competition" = "MEDIUM". Sort the rest by search volume, competition_index in the function and then you want to return a dictionary in this functiion. The dictionary returned should key the keyword as a key and everything else that the dataforseo API returned as a value. If there arent any good ones or a very small number after you perform the filter, do it again for the next 25 keywords until you have at least 5 results.
3. Return this to the USER and show as a table on the jinja2 bootstrap frontend with checkboxes on the left. The user should be able to select the checkboxes containing the keywords and press submit. When the user submits these keywords, they shall each go to the python backend as a list. The backend shall create x articles per keyword (x is randomized in a range. for example 3-6). The articles shouldnt be fully written, only bullet points. You will create this with an AI. Use locally running LLaMA AI or 175B BLOOM. There should be around 10 bullet points per article. The AI should also send some web sources. This means you have to write a python function that submits to the locally running AI and takes the response and converts to the bullet points . This is only the first part.
4. We are now going to create some code with chatgpt API. This is also PAID an you must have your own account. I will not provide you with an account. All we are going to do is make chatgpt generate a php website code for the site . It shouldnt be wordpress or a CMS, we want raw code. The code should use bootstrap and be able to display articles in the main body text. it should have a sidebar. The code should have a frontpage. The code should have a menu, logo and footer. The menu should be created with a list <ul>, <li><a>..... . This should be unique each time we run the tool. I just want the tool to output the website code with each "article" with bullet points as the text. We want a frontpage. Its alright if chatgpt outputs code that is not completely compliant. I am a senior and i can fix it, we just want to automate a lot of it.
5. Return a response to the jinja2 frontend. The response to the user should tell the user the folder of the output on the local computer. THe response should also send the bullet point articles, one article for each set of 10 bullet points. The articles should be written in markdown.
I can code and am very senior with python. I will check your code and make sure it has docstrings and a real unit test suite and that the style isnt awful. If it has a lot of bugs or its very bad code, i will send it back to you for revision. Creating tests and docstrings without overly long functions is a requirement for delivery.
If you got to the end of this and have read the requirements, please p lace "SEO" and "AI" in your b-id. I will not consider your b-id unless it has these words in it.