Spaces:
Sleeping
Sleeping
| from openai import AzureOpenAI | |
| import os | |
| import streamlit as st | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| api_base = os.getenv("AZURE_OPENAI_ENDPOINT") | |
| api_key = os.getenv("AZURE_OPENAI_API_KEY") | |
| deployment_name = 'GPT-4-1106' | |
| api_version = '2023-12-01-preview' # Ensure this matches the correct version | |
| client = AzureOpenAI( | |
| api_key=api_key, | |
| api_version=api_version, | |
| base_url=f"{api_base}/openai/deployments/{deployment_name}" | |
| ) | |
| def openaifunction(prompt,max_tokens=4000, temperature=0.3): | |
| response = client.chat.completions.create( | |
| model=deployment_name, | |
| messages=[ | |
| {"role": "system", "content": "you are a good assistant."}, | |
| {"role": "user", "content": [ | |
| { | |
| "type": "text", | |
| "text": prompt | |
| } | |
| ]} | |
| ], | |
| ) | |
| response = response.choices[0].message.content | |
| return response | |
| # print(response) | |
| # Streamlit UI | |
| def main(): | |
| st.title("Article") | |
| # Text input boxes for the user to input articles | |
| article = st.text_area("Enter Article ") | |
| title_prompt= f""" You are a good news journalist. Here is the article {article}. \n | |
| Your task is to generate multiple Headlines, Descriptions, and URL slugs.\n | |
| Your response needs to be included within the article.\n | |
| ========================= | |
| Instructions: | |
| 1. The objective is to provide one-sentence headlines without using a colon to connect two sentences. | |
| 2. It's advisable to aim for headlines of 60-80 characters for optimal results. Please ensure that the generated headline aligns with Google's guidelines for headline length. | |
| 3. Please verify that the description adheres to Google's guidelines for description length: | |
| Target: Aim for descriptions between 120-160 characters. This range ensures that your description remains informative even if truncated. | |
| Focus: Clearly describe the content's value to the user. | |
| Truncation: Be aware that Google might opt to use content from your webpage instead of your description if it's deemed more relevant. | |
| 4. Please generate engaging text for a Twitter post under 280 characters, sharing the link to this article (with a placeholder for the link). This tweet should use emojis to captivate attention and emphasize key points. | |
| ========================= | |
| The response must be like- | |
| \n | |
| Headlines: | |
| \n1. | |
| \n2. | |
| .... | |
| \n | |
| Descriptions: | |
| \n1. | |
| \n2. | |
| .... | |
| \n | |
| URL Slugs: | |
| \n1. | |
| \n2. | |
| .... | |
| Twitter Post: | |
| \n 1. | |
| ========================== | |
| Restrictions: | |
| 1. Don't provide any explanation or details | |
| """ | |
| if st.button("Submit"): | |
| if article.strip(): | |
| synthesized_article = openaifunction(title_prompt,max_tokens=800, temperature=0.3) | |
| st.subheader("Article Metadata") | |
| st.write(synthesized_article) | |
| else: | |
| st.error("Please enter the article.") | |
| if __name__ == "__main__": | |
| main() | |