| import openai | |
| import streamlit as st | |
| import os | |
| def get_ai_insight(indicator_name, indicator_value, api_key): | |
| """ | |
| Generates an AI-driven insight for a given indicator and its value using LLM. | |
| Args: | |
| indicator_name (str): Name of the technical indicator. | |
| indicator_value (float): Value of the technical indicator. | |
| api_key(str) : API key for accessing the LLM | |
| Returns: | |
| str: AI-generated insight. | |
| """ | |
| client = openai.OpenAI(api_key = api_key) | |
| try: | |
| prompt = f"Explain the significance of a {indicator_name} value of {indicator_value} in stock trading in one sentence." | |
| response = client.chat.completions.create( | |
| model="gpt-4-turbo", # Use "gpt-3.5-turbo" for faster and cheaper results | |
| messages=[{"role": "system", "content": "You are a stock trading expert."}, | |
| {"role": "user", "content": prompt}], | |
| temperature=0.5 # Moderate creativity | |
| ) | |
| return response.choices[0].message.content.strip() | |
| except openai.AuthenticationError: | |
| return "Invalid OpenAI API key. Please check your API key in Streamlit secrets." | |
| except openai.RateLimitError: | |
| return "OpenAI API rate limit exceeded. Try again later." | |
| except Exception as e: | |
| return f"Error generating AI insight: {e}" | |