import mysql.connector import os from dotenv import load_dotenv import gradio as gr import cohere from decimal import Decimal # Load environment variables load_dotenv(verbose=True) # Function to fetch top high performers #def get_top_high_performers(html: str): def get_top_high_performers(html: str, limit: str): results = [{'manager_name': '加藤 圭介', 'annual_return': Decimal('11.40'), 'risk_adjusted_return': Decimal('6.40'), 'alpha': Decimal('1.60'), 'volatility': Decimal('13.50'), 'max_drawdown': Decimal('8.70'), 'customer_feedback': '信頼性の高さ', 'behavior_patterns': '計画性のある進行', 'score': Decimal('-2.80')}, {'manager_name': '鈴木 花子', 'annual_return': Decimal('13.20'), 'risk_adjusted_return': Decimal('7.50'), 'alpha': Decimal('1.66'), 'volatility': Decimal('18.80'), 'max_drawdown': Decimal('9.00'), 'customer_feedback': '積極的な姿勢', 'behavior_patterns': 'データドリブンアプローチ', 'score': Decimal('-5.44')}, {'manager_name': '中村 亮介', 'annual_return': Decimal('12.20'), 'risk_adjusted_return': Decimal('5.80'), 'alpha': Decimal('1.50'), 'volatility': Decimal('18.40'), 'max_drawdown': Decimal('8.10'), 'customer_feedback': '高度なプレゼン力', 'behavior_patterns': '結果志向の行動', 'score': Decimal('-7.00')}, {'manager_name': '田中 美咲', 'annual_return': Decimal('12.30'), 'risk_adjusted_return': Decimal('5.90'), 'alpha': Decimal('1.40'), 'volatility': Decimal('18.30'), 'max_drawdown': Decimal('9.10'), 'customer_feedback': 'ポジティブな思考', 'behavior_patterns': '戦略的な計画性', 'score': Decimal('-7.80')}, {'manager_name': '小林 彩香', 'annual_return': Decimal('11.90'), 'risk_adjusted_return': Decimal('6.10'), 'alpha': Decimal('1.20'), 'volatility': Decimal('18.80'), 'max_drawdown': Decimal('8.50'), 'customer_feedback': '優れたチームリーダー', 'behavior_patterns': '創造的な提案力', 'score': Decimal('-8.10')}] # Format the results for Gradio output formatted_results = [ f"{i+1}. Manager: {row['manager_name']}, Score: {row['score']:.2f}\n" f"Customer Feedback: {row['customer_feedback']}\n" f"Behavior Patterns: {row['behavior_patterns']}\n" f"Annual Return: {row['annual_return']}%, Risk-Adjusted Return: {row['risk_adjusted_return']}%, " f"Alpha: {row['alpha']}, Volatility: {row['volatility']}%, Max Drawdown: {row['max_drawdown']}%\n" for i, row in enumerate(results) ] tmp = "\n\n".join(formatted_results) co = cohere.ClientV2(api_key=os.environ.get("COHERE_API_KEY")) res = co.chat( model="command-a-03-2025", messages=[ { "role": "user", "content": tmp+"はパフォーマンスの高いファンド・マネージャのデータです。このデータを参考にしてファンド・マネージャの育成ガイドラインを策定してください。 必ず、日本語で答えてください。", } ], ) final = res.message.content[0].text return "\n\n".join(formatted_results),final # Define Gradio interface interface = gr.Interface( fn=get_top_high_performers, inputs=[gr.HTML("""優秀なファンドマネージャーのKPI(重要業績評価指標)は、そのパフォーマンスを測定し、投資家の期待に応えるための指標として活用されます。以下に、具体的なKPIについて詳しく説明します:

1. ポートフォリオのリターン 年間リターン: ファンドのパフォーマンスを年間でどれだけ向上させたかを評価します。 リスク調整後リターン(シャープレシオなど): リスクを取った分に対してどれだけ効率的にリターンを生んだか。
2. ベンチマークとの比較 ベンチマークインデックス(例: S&P500やTOPIX)を超えたパフォーマンスがあるかどうか。 アルファ: ベンチマークを上回る超過リターンを測定。
3. リスク管理 ボラティリティ: ポートフォリオの価格変動の安定性を測定。 最大ドローダウン: ポートフォリオがどれだけ急落したかを把握。
4. 資金流入と流出 資金流入量: 新規投資家から集めた資金額。 資金流出量: 既存投資家の資金引き上げ率。
5. 費用対効果 経費率: ファンドの運営にかかる総費用が投資家に与える影響を分析。
6. ポートフォリオの構成・分散 アセットアロケーション: 投資先の地域やセクターの多様性。 分散投資: リスクを軽減するための適切な銘柄選択。
7. 投資家とのコミュニケーション 投資家に対する透明性と情報提供の頻度。
8. 定期的なレポートや説明会の実施。
これらのKPIを総合的に分析し、運用手腕を評価することで、優秀なファンドマネージャーの力量が分かります。

High Performer
High Performer 抽出の基準例
✨年間リターンが10%以上
✨リスク調整後リターンが5%以上
✨アルファが1%以上
✨ボラティリティが20%以下
✨最大ドローダウンが10%以下 """),gr.Textbox(label="件数",info="",value="5")], outputs=[gr.Textbox(label="結果",show_copy_button=True,info="Show records where the annual return is 10% or more, the risk-adjusted return is at least 5%, the alpha (excess return) is greater than or equal to 1, the volatility is no more than 20%, and the maximum drawdown is 10% or less. Then, sort these records in score descending order.\n年間リターンが10%以上、リスク調整後リターンが5%以上、アルファ(超過リターン)が1以上であり、ボラティリティが20%以下、最大ドローダウンが10%以下のレコードを選択します。その後、計算されたスコアを基準に降順で並び替えます。"),gr.Textbox(label="教育ガイドライン",info=""" High Performerとは、優れた業績を上げるファンドマネージャーのことを指します!! ✨ 特に、以下のような基準を満たしていることが重要です: 高いリターン:年間リターンが安定して高く、投資家に大きな利益をもたらします。 リスク管理能力:ボラティリティ(価格変動)や最大ドローダウンが低く、リスクを抑えながら運用しています。 ベンチマーク超過リターン:市場の指標(例: S&P500など)を上回るアルファ(超過リターン)を達成。 顧客との信頼関係:顧客からのフィードバックが良好で、透明性や適切なコミュニケーションを維持。 行動習慣と戦略:継続的な学習や市場の動向を分析するなど、優れた投資戦略を展開。 例えば、あるHigh Performerの行動として、「地政学的イベントを監視して意思決定を行う」や「歴史的トレンドに基づいた投資方針を確立する」などがあります。💡 このような特徴を持つファンドマネージャーは投資家から信頼され、資金運用の成功を導く鍵となる存在です。 score = (annual_return + risk_adjusted_return + alpha - volatility - max_drawdown)""")], title="Top High Performers", submit_btn="実行", clear_btn="クリア", description="""Displays the top 5 high-performing fund managers based on calculated score.\n計算されたスコアに基づいて、パフォーマンスの高いファンドマネージャー上位5名を表示します。""" ) # Add a sidebar for additional context or features with gr.Blocks() as app: with gr.Row(): #with gr.Column(scale=4): with gr.Sidebar(open=False): gr.HTML(""" 投資指標の説明

投資指標の概要

ドローダウン (Drawdown)

ドローダウンは、資産価値が最大から最小までどれだけ減少したかを示す指標です。投資のリスクを評価する重要な指標であり、ドローダウンが小さいほど安定した運用とみなされます。

アルファ (Alpha)

アルファは市場全体(ベンチマーク)をどれだけ上回ったかを示す指標で、ファンドマネージャーの運用手腕を評価するのに使われます。

年間リターン (Annual Return)

年間リターンは、1年間でどれだけの利益を生み出したかを示す指標です。

リスク調整後リターン (Risk-Adjusted Return)

リスク調整後リターンは、リスクを考慮してリターンの質を評価する指標です。主な指標にはシャープレシオとトレイナーレシオがあります。

ボラティリティ (Volatility)

ボラティリティは資産の価格変動の大きさを表す指標で、リスクの尺度として使われます。

""") with gr.Column(scale=8): interface.render() # Launch the app app.launch() # Launch Gradio app #interface.launch()