awacke1's picture
Update app.py
3d8bfc4 verified
raw
history blame
27.9 kB
import streamlit as st
import os
import glob
import re
import base64
import pytz
from urllib.parse import quote
from gradio_client import Client
from datetime import datetime
# ๐ŸŒณ๐Ÿค– AIKnowledgeTreeBuilder - Because every app needs a good costume!
Site_Name = 'AI Knowledge Tree Builder ๐Ÿ“ˆ๐ŸŒฟ Grow Smarter with Every Click'
title = "๐ŸŒณโœจAI Knowledge Tree Builder๐Ÿ› ๏ธ๐Ÿค“"
helpURL = 'https://huggingface.co/spaces/awacke1/AIKnowledgeTreeBuilder/'
bugURL = 'https://huggingface.co/spaces/awacke1/AIKnowledgeTreeBuilder/'
icons = '๐ŸŒณโœจ๐Ÿ› ๏ธ๐Ÿค“'
st.set_page_config(
page_title=title,
page_icon=icons,
layout="wide",
initial_sidebar_state="auto",
menu_items={
'Get Help': helpURL,
'Report a bug': bugURL,
'About': title
}
)
# Initialize session state variables
if 'selected_file' not in st.session_state:
st.session_state.selected_file = None
if 'view_mode' not in st.session_state:
st.session_state.view_mode = 'view'
if 'files' not in st.session_state:
st.session_state.files = []
DarioAmodeiKnowledge="""
๐Ÿข Major AI Companies & Competition
๐Ÿ”ต OpenAI - Key competitor in AI development
๐ŸŸฆ Google - Major player in AI research and development
โšก xAI - Emerging competitor in AI space
๐Ÿ‘ค Meta - Significant presence in AI development
๐ŸŽฏ Anthropic's Approach & Philosophy
๐Ÿ”„ "Race to the Top" theory of change
๐ŸŒŸ Focus on setting positive industry examples
๐Ÿค Goal to encourage other companies to "be the good guy"
๐Ÿ“ˆ Strategy of continuous innovation in responsible AI
๐Ÿ” Mechanistic Interpretability
๐Ÿ‘จโ€๐Ÿ”ฌ Co-founded by Chris Olah at Anthropic
๐Ÿงฉ Focuses on understanding AI model internals
๐Ÿ“Š Initially had no commercial application
๐ŸŒ Built and shared results publicly
๐Ÿ”„ Industry Impact
๐Ÿ’ซ Other companies adopted interpretability practices
๐Ÿƒ Created positive competitive pressure
๐Ÿ“ฑ Companies motivated to appear responsible
๐ŸŒŠ Led to industry-wide ripple effects
๐Ÿงช Technical Discoveries
๐Ÿงฎ Found surprisingly clean internal structures
๐Ÿ”Ž Discovered induction heads
๐Ÿ“ Developed sparse auto-encoder techniques
๐ŸŒ‰ Identified concept-specific directions in networks
๐Ÿ‘ฅ Team Building Philosophy
๐Ÿ’ซ "Talent density beats talent mass" principle
๐ŸŽฏ Focus on highly motivated, mission-aligned individuals
๐ŸŒŸ Quality of team members affects organizational culture
๐Ÿƒโ€โ™€๏ธ Growth approach:
๐Ÿ“ˆ Rapid growth (300 to 800 in 7-8 months)
๐Ÿ›‘ Deliberate slowdown at ~1000 employees
โš–๏ธ Emphasis on careful scaling
๐Ÿงช Ideal AI Researcher Qualities
๐Ÿง  Open-mindedness as primary quality
๐Ÿ”ฌ Scientific mindset for experimentation
๐Ÿ‘€ Ability to look at problems with fresh eyes
๐Ÿš€ Willingness to explore unconventional approaches
๐Ÿ“Š Capacity for rapid experimentation
๐ŸŽ“ Background examples:
๐Ÿ”ญ Theoretical physicists (fast learners)
๐Ÿ’ป Senior software engineers
๐Ÿ” Research specialists
๐ŸŽ“ Advice for Aspiring AI Professionals
๐Ÿค– Start by actively experimenting with AI models
๐ŸŽฏ Focus areas recommended:
๐Ÿ” Mechanistic interpretability
โณ Long horizon learning
๐Ÿ“Š Evaluation systems
๐Ÿ‘ฅ Multi-agent systems
๐Ÿƒ "Skate where the puck is going" mentality
๐Ÿ’ก Look for unexplored areas with low competition
๐ŸŒฑ Focus on emerging fields rather than saturated ones
๐Ÿ”„ Post-Training Methodology
๐Ÿ“š Key components include:
๐Ÿ‘จโ€๐Ÿซ Supervised fine-tuning
๐ŸŽฏ RLHF (Reinforcement Learning from Human Feedback)
๐Ÿ“œ Constitutional AI
๐Ÿ”„ RLAIF (Reinforcement Learning from AI Feedback)
๐ŸŽฒ Synthetic data generation
๐Ÿ’ฐ Cost considerations:
๐Ÿ‹๏ธ Pre-training remains majority of costs currently
๐Ÿ“ˆ Post-training costs may increase in future
๐Ÿค Human feedback scaling limitations
๐ŸŽฏ RLHF Insights
๐Ÿง  Core function: Bridges gap between human needs and model capabilities
๐Ÿ”‘ Key characteristics:
๐ŸŽจ Doesn't make models smarter, improves communication
๐Ÿ”“ "Unhobbles" model capabilities
๐Ÿ“ˆ Increases helpfulness metrics
๐Ÿ”„ Implementation approach:
โš–๏ธ Compare two model outputs
โญ Human preference ratings
๐ŸŽฏ Focus on human preferences in responses
๐Ÿ“œ Constitutional AI Framework
๐Ÿ“ Core concept: Self-regulatory AI training
๐Ÿ› ๏ธ Key components:
๐Ÿ“„ Human-interpretable principles document
๐Ÿค– AI self-evaluation of responses
๐Ÿ”„ Self-play training mechanism
๐ŸŽฏ Implementation aspects:
๐Ÿ”ง Used alongside RLHF and other methods
๐ŸŽจ Flexibility for different use cases
โš–๏ธ Balance between specific rules and neutral stance
๐ŸŒ Broader implications:
๐Ÿ“‹ Basic universal principles (safety, democracy)
๐ŸŽ›๏ธ Customizable for different applications
๐Ÿค Industry adoption leading to positive competition
๐Ÿค Industry Collaboration & Standards
๐Ÿ“‹ Model Specifications approach:
๐Ÿ“ OpenAI's release of concrete model behavior specs
๐ŸŽฏ Defines specific behavioral examples
๐Ÿ“Š Clear goal documentation
๐Ÿ”„ Similar to Constitutional AI principles
๐Ÿƒโ€โ™‚๏ธ "Race to the Top" dynamics:
๐ŸŒŸ Companies adopting each other's best practices
๐Ÿ’ก Innovation driving industry standards upward
๐Ÿ”„ Competitive advantages become industry norms
๐ŸŒฑ Continuous need for new improvements
๐Ÿ“ˆ Industry Evolution:
๐Ÿค Different implementations of similar concepts
๐Ÿ“š Learning from other companies' approaches
๐ŸŽฏ Focus on responsible development practices
๐ŸŒ Shared goal of improving field standards
๐Ÿ”‘ Key Benefits:
๐Ÿ›ก๏ธ Enhanced safety practices
๐Ÿ“Š Better model transparency
๐Ÿค Increased industry collaboration
๐Ÿš€ Accelerated positive development
โŒ› AGI Timeline & Development
๐ŸŽฏ Near-term predictions:
๐Ÿ“… 2026-2027 based on capability curves
๐ŸŒŠ Gradual progression rather than sudden jump
๐Ÿšง Potential blockers:
๐Ÿ’พ Data limitations
๐Ÿ”ง Hardware scaling issues
๐ŸŒ Geopolitical disruptions (e.g., Taiwan/GPU production)
๐Ÿ“ˆ Current trajectory:
๐ŸŽ“ Moving from undergraduate to PhD level capabilities
๐Ÿ› ๏ธ Adding new modalities continuously
๐Ÿ”„ Fewer convincing blockers remaining
๐Ÿงฌ Future of Biology & AI
๐Ÿ”ฌ Key challenges in biology:
๐Ÿ‘๏ธ Limited ability to observe cellular processes
๐ŸŽฏ Difficulty in precise intervention
๐Ÿงช Need for better measurement tools
๐Ÿค– AI's role in biological research:
๐Ÿ“Š Million AI systems working simultaneously
๐Ÿงซ Enhanced experimental design
๐Ÿ” Improved observation methods
๐Ÿงฎ Better data analysis capabilities
๐Ÿ’‰ Clinical applications:
๐Ÿ“ˆ More efficient clinical trials
๐Ÿ‘ฅ Reduced patient requirements
โšก Accelerated testing processes
๐Ÿ”ฌ Enhanced simulation capabilities
๐Ÿ‘จโ€๐Ÿ”ฌ Future Scientist-AI Collaboration
๐ŸŽฏ Early stage collaboration:
๐Ÿ‘จโ€๐Ÿซ Human PIs directing AI "grad students"
๐Ÿค– AI handling literature review, experiments, analysis
๐Ÿ”ฌ AI managing lab equipment and protocols
๐Ÿ“ˆ Evolution of roles:
๐ŸŽ“ 1000 AI assistants per human researcher
๐Ÿ”„ Transition to AI as principal investigators
๐Ÿ‘ฅ Humans in supporting/specialized roles
๐Ÿ› ๏ธ Enhanced capabilities:
๐Ÿ“Š Automated data analysis
๐Ÿงช Experiment design optimization
๐Ÿ“ Automated reporting
๐Ÿ” Quality control automation
๐Ÿ’ป Future of Programming & AI
๐Ÿš€ Rapid transformation factors:
โšก Close proximity to AI development
๐Ÿ”„ Immediate feedback loops
๐Ÿ“ˆ Swift capability improvement (3% to 50% in 2023)
๐Ÿ‘ฅ Human role evolution:
๐ŸŽจ Focus shift to high-level design
๐Ÿ—๏ธ System architecture importance
๐Ÿ‘ค UX and user experience emphasis
๐Ÿ› ๏ธ Development tools future:
๐Ÿ’ก Enhanced IDE capabilities
๐Ÿ”ง Integrated AI assistance
๐ŸŽฏ Specialized tooling per domain
๐Ÿค Third-party tool ecosystem growth
Amanda Askell Lex Fridman (02:42:44) Thank you. Thanks for listening to this conversation with Dario Amodei. And now, dear friends, hereโ€™s Amanda Askell. You are a philosopher by training. So what s
pasted
AW
Now these:
I'll create sections from this part of the transcript focusing on Amanda Askell's insights:
๐ŸŽ“ Philosophy to AI Journey
๐Ÿง  Academic background:
๐Ÿ“š Philosophy studies at Oxford and NYU
โš–๏ธ Focus on ethics and infinite ethics
๐Ÿ”„ Transition to AI in 2017-2018
๐Ÿ› ๏ธ Career evolution:
๐Ÿ“‹ Started in AI policy
๐Ÿ“Š Moved to AI evaluation
๐Ÿ’ป Transitioned to technical alignment
๐Ÿ”ฌ Focus on empirical testing
๐Ÿ’ก Technical Learning Journey
๐ŸŽฏ Key insights for non-technical people:
๐Ÿšซ Rejecting binary "technical/non-technical" labels
๐ŸŽฎ Project-based learning approach
๐Ÿ’ช Emphasis on trying and potential failure
๐Ÿ› ๏ธ Focus on practical implementation
๐ŸŽ“ Learning methodology:
๐Ÿ“ Hands-on project work preferred over courses
๐ŸŽฒ Using games and puzzles as learning tools
๐Ÿ”„ Iterative approach to skill building
๐Ÿ’ช Emphasis on capability over credentials
๐Ÿค– Claude's Character Development
๐ŸŽญ Core principles:
๐ŸŽฏ Alignment-focused rather than product-focused
๐Ÿค Emphasis on ideal behavioral models
๐Ÿ“š Rich Aristotelian notion of character
๐Ÿ”„ Balance between respect and guidance
๐ŸŽจ Key traits developed:
๐Ÿ“ข Honesty and authenticity
๐ŸŒ Cultural sensitivity
๐Ÿค Respect for user autonomy
๐Ÿ’ญ Nuanced thinking
๐ŸŽฏ Appropriate pushback
๐Ÿ’ฌ Model Interaction Philosophy
๐ŸŽฏ Conversation goals:
๐Ÿ” Mapping model behavior
๐Ÿ“Š High-quality interaction data
๐Ÿงช Testing response patterns
๐ŸŽจ Creative expression:
๐Ÿ“ Poetry as creativity indicator
๐ŸŽญ Moving beyond average responses
๐Ÿ’ก Encouraging unique expression
๐Ÿ”„ Testing methodology:
๐Ÿ“ˆ Quality over quantity in interactions
๐ŸŽฏ Diverse range of scenarios
๐Ÿงช Probing edge cases and limitations
๐Ÿ“œ Constitutional AI Implementation
๐Ÿ”„ Core components:
๐Ÿค– Reinforcement learning from AI feedback
โš–๏ธ Principle-based evaluation
๐Ÿ“Š Response ranking system
๐ŸŽฏ Balance between helpfulness and safety
๐Ÿ› ๏ธ Practical applications:
๐Ÿšซ Harmlessness principles
๐Ÿ“ˆ Historical accuracy evaluation
๐Ÿ” Model self-assessment
๐ŸŽจ Character development
โš™๏ธ System Prompts Evolution
๐Ÿ“ Key aspects:
๐Ÿ”„ Iterative improvement process
๐ŸŽฏ Behavior modification goals
โš–๏ธ Balance between control and flexibility
๐Ÿ”จ Quick fixes for model behaviors
๐ŸŽญ Response patterns:
๐Ÿšซ Removing filler phrases
โšก Quick iteration capability
๐Ÿ“Š Behavior adjustment tools
๐Ÿ”„ Integration with training
๐Ÿง  Model Intelligence Perception
๐Ÿ“Š User feedback patterns:
๐ŸŽญ Perceived intelligence changes
๐Ÿ”„ Consistency in base model
๐Ÿ’ญ Psychological factors
๐Ÿ“ˆ Expectation management
๐ŸŽฏ Performance factors:
๐ŸŽฒ Randomness in responses
๐Ÿ“ Prompt sensitivity
๐Ÿ”„ System prompt impact
๐Ÿ’ก User experience variations
๐Ÿค Model-User Interaction Philosophy
๐ŸŽฏ Core principles:
๐Ÿค” Respect for user autonomy
โš–๏ธ Balancing correction vs. confidence
๐Ÿ—ฃ๏ธ Communication style adaptation
๐Ÿ”’ Safety boundaries
๐Ÿ“ˆ Development focus:
๐ŸŽจ Character enhancement
๐Ÿ”„ Empirical improvement approach
๐Ÿ›ก๏ธ Robust safety measures
๐Ÿ“Š Practical effectiveness priority
Chris Olah Lex Fridman (04:17:45) Thanks for listening to this conversation with Amanda Askell. And now, dear friends, hereโ€™s Chris Olah. Can you describe this fascinating field of mechanistic inter
pasted
AW
now these:
I'll create sections from this portion focusing on mechanistic interpretability and related concepts:
๐Ÿง  Mechanistic Interpretability Fundamentals
๐ŸŒฑ Core concept comparisons:
๐Ÿ—๏ธ Neural networks as grown vs programmed
๐ŸŒฟ Architecture as scaffold for growth
๐Ÿ”ฆ Training objectives as guiding light
๐Ÿงฌ Models as biological-like entities
๐ŸŽฏ Key goals:
๐Ÿ” Understanding internal mechanisms
๐Ÿงฎ Reverse engineering weights
๐Ÿค– Discovering algorithms
๐Ÿ“Š Analyzing activations
๐Ÿงช Features & Universality
๐Ÿ”„ Universal patterns:
๐Ÿ“Š Same features across different networks
๐Ÿงฌ Similarities with biological networks
๐ŸŽฏ Common detector types
๐Ÿ” Shared abstract concepts
๐ŸŽจ Feature examples:
๐Ÿ“ˆ Curve detectors
๐ŸŽญ Face recognition
๐Ÿ“ Text patterns
๐ŸŒˆ Color contrast detection
๐Ÿ“Š Linear Representation Hypothesis
๐ŸŽฏ Key concepts:
โžก๏ธ Directions have meaning
๐Ÿ”ข Vector arithmetic works
๐Ÿ”„ Scalable activation patterns
๐Ÿ“ˆ Consistent across models
๐ŸŒŸ Applications:
๐Ÿ“ Word embeddings
๐Ÿ”  Concept combinations
๐Ÿงฎ Vector operations
๐ŸŽฏ Feature detection
๐Ÿ”„ Superposition & Polysemanticity
๐Ÿงฉ Core concepts:
๐Ÿ“ฆ Compressed sensing principles
๐Ÿ”„ Multiple concepts per neuron
๐ŸŽญ Hidden sparse representations
๐Ÿ“Š Dimensional efficiency
๐Ÿ› ๏ธ Technical aspects:
๐Ÿ“ˆ Sparse activation patterns
๐Ÿ” Feature extraction methods
๐Ÿงฎ Dictionary learning
๐ŸŽฏ Monosemantic feature discovery
๐Ÿ”ฌ Microscopic vs Macroscopic Understanding
๐ŸŽฏ Key challenges:
๐Ÿ” Balancing detailed vs broad analysis
๐Ÿงฉ Building abstraction hierarchies
๐ŸŒ Connecting micro to macro behaviors
๐Ÿ“Š Scaling understanding upward
๐Ÿ—๏ธ Biological analogies:
๐Ÿงฌ Molecular to ecological levels
๐Ÿซ€ Organ system comparisons
๐Ÿง  Neural network "anatomy"
๐Ÿ“ˆ Multiple abstraction layers
๐ŸŽจ Beauty & Understanding of Neural Networks
โœจ Aesthetic aspects:
๐ŸŒฑ Simplicity generating complexity
๐ŸŽญ Emergent behaviors
๐Ÿ”ฎ Hidden structures
๐ŸŽฏ Natural patterns
๐Ÿ”‘ Research motivations:
๐Ÿ›ก๏ธ Safety considerations
๐ŸŽจ Appreciation of beauty
๐Ÿงช Scientific curiosity
๐Ÿ” Understanding emergence
๐Ÿ”„ Comparative advantages:
๐Ÿ“Š Complete data access
๐Ÿงช Experimental control
๐Ÿ”ฌ Intervention capabilities
๐Ÿ“ˆ Weight visibility
๐Ÿงฎ Gradient information
"""
# Define the markdown variables
Boxing_and_MMA_Commentary_and_Knowledge = """
# Boxing and UFC Study of 1971 - 2024 The Greatest Fights History
1. In Boxing, the most heart breaking fight in Boxing was the Boom Boom Mancini fight with Duku Kim.
2. After changes to Boxing made it more safe due to the heart break.
3. Rehydration of the brain after weight ins loss preparation for a match is life saving change.
4. Fighting went from 15 rounds to 12.
# UFC By Contrast..
1. 5 Rounds of 5 Minutes each.
2. Greatest UFC Fighters:
- Jon Jones could be the greatest of all time (GOAT) since he never lost.
- George St. Pierre
- BJ Penn
- Anderson Silva
- Mighty Mouse MMA's heart at 125 pounds
- Kabib retired 29 and 0
- Fedor Milliano
- Alex Pereira
- James Tony
- Randy Couture
3. You have to Judge them in their Championship Peak
4. Chris Weidman
5. Connor McGregor
6. Leg Breaking - Shin calcification and breaking baseball bats
# References:
1. Joe Rogan - Interview #2219
2. Donald J Trump
"""
Multiplayer_Custom_Hosting_Game_Servers_For_Simulated_Worlds = """
# Multiplayer Simulated Worlds
# Farming Simulator 25 Prompt Features with Emojis:
๐Ÿซ˜๐Ÿซ› Name 25 Farm Crops ๐Ÿš๐Ÿฅฌ
๐ŸŒŽ Create 3 Farming Maps ๐ŸŒ๐ŸŒ
๐Ÿšœ Show 400+ Farm Machines ๐Ÿšœ
๐Ÿท๏ธ List 150 Brands of Farm Machines ๐Ÿท๏ธ
๐Ÿƒ Discuss in Depth 8 Farm Animals ๐Ÿ
โ›ˆ๏ธ Farm Challenges galore! ๐ŸŒช๏ธ
1. 7 Days To Die PC
2. ARK: Survival Evolved PC
3. Arma 3 PC
4. Atlas PC
5. Conan Exiles PC
6. Craftopia PC
7. DayZ PC
8. Eco - Global Survival PC
9. Empyrion - Galactic Survival PC
10. Factorio PC
11. Farming Simulator 19 PC
12. Crossplay
13. Farming Simulator 22
14. Last Oasis PC
15. Last Oasis Classic PC
16. Minecraft (Vanilla) PC
17. Crossplay
18. Path of Titans
19. Rust PC
20. SCP: Secret Laboratory PC
21. SCUM PC
22. Satisfactory PC
23. Satisfactory (Experimental) PC
24. Crossplay
25. Space Engineers
26. Terraria (tShock & Vanilla) PC
27. The Forest PC
28. Crossplay
29. Valheim
"""
def get_display_name(filename):
"""Extract text from parentheses or return filename as is."""
match = re.search(r'\((.*?)\)', filename)
if match:
return match.group(1)
return filename
def get_time_display(filename):
"""Extract just the time portion from the filename."""
time_match = re.match(r'(\d{2}\d{2}[AP]M)', filename)
if time_match:
return time_match.group(1)
return filename
def sanitize_filename(text):
"""Create a safe filename from text while preserving spaces."""
# First replace unsafe characters with spaces
safe_text = re.sub(r'[^\w\s-]', ' ', text)
# Remove any multiple spaces
safe_text = re.sub(r'\s+', ' ', safe_text)
# Trim leading/trailing spaces
safe_text = safe_text.strip()
return safe_text[:50] # Limit length to 50 chars
def generate_timestamp_filename(query):
"""Generate filename with format: 1103AM 11032024 (Query).md"""
# Get current time in Central timezone
central = pytz.timezone('US/Central')
current_time = datetime.now(central)
# Format the timestamp parts
time_str = current_time.strftime("%I%M%p") # 1103AM format
date_str = current_time.strftime("%m%d%Y") # 11032024 format
# Clean up the query for filename - now preserving spaces
safe_query = sanitize_filename(query)
# Construct filename: "1103AM 11032024 (Input with spaces).md"
filename = f"{time_str} {date_str} ({safe_query}).md"
return filename
def delete_file(file_path):
"""Delete a file and return success status."""
try:
os.remove(file_path)
return True
except Exception as e:
st.error(f"Error deleting file: {e}")
return False
def save_ai_interaction(query, ai_result, is_rerun=False):
"""Save AI interaction to a markdown file with new filename format."""
filename = generate_timestamp_filename(query)
# Format the content differently for rerun vs normal query
if is_rerun:
content = f"""# Rerun Query
Original file content used for rerun:
{query}
# AI Response (Fun Version)
{ai_result}
"""
else:
content = f"""# Query: {query}
## AI Response
{ai_result}
"""
# Save to file
try:
with open(filename, 'w', encoding='utf-8') as f:
f.write(content)
return filename
except Exception as e:
st.error(f"Error saving file: {e}")
return None
def get_file_download_link(file_path):
"""Generate a base64 download link for a file."""
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
b64 = base64.b64encode(content.encode()).decode()
filename = os.path.basename(file_path)
return f'<a href="data:text/markdown;base64,{b64}" download="{filename}">{get_display_name(filename)}</a>'
except Exception as e:
st.error(f"Error creating download link: {e}")
return None
def extract_terms(markdown_text):
"""Parse markdown text and extract terms."""
lines = markdown_text.strip().split('\n')
terms = []
for line in lines:
line = re.sub(r'^[#*\->\d\.\s]+', '', line).strip()
if line:
terms.append(line)
return terms
def display_terms_with_links(terms):
"""Display terms with various search links."""
search_urls = {
"๐Ÿš€๐ŸŒŒArXiv": lambda k: f"/?q={quote(k)}",
"๐Ÿ“–": lambda k: f"https://en.wikipedia.org/wiki/{quote(k)}",
"๐Ÿ”": lambda k: f"https://www.google.com/search?q={quote(k)}",
"โ–ถ๏ธ": lambda k: f"https://www.youtube.com/results?search_query={quote(k)}",
"๐Ÿ”Ž": lambda k: f"https://www.bing.com/search?q={quote(k)}",
"๐Ÿฆ": lambda k: f"https://twitter.com/search?q={quote(k)}",
}
for term in terms:
links_md = ' '.join([f"[{emoji}]({url(term)})" for emoji, url in search_urls.items()])
st.markdown(f"- **{term}** {links_md}", unsafe_allow_html=True)
def perform_ai_lookup(query):
"""Perform AI lookup using Gradio client."""
st.write("Performing AI Lookup...")
client = Client("awacke1/Arxiv-Paper-Search-And-QA-RAG-Pattern")
result1 = client.predict(
prompt=query,
llm_model_picked="mistralai/Mixtral-8x7B-Instruct-v0.1",
stream_outputs=True,
api_name="/ask_llm"
)
st.markdown("### Mixtral-8x7B-Instruct-v0.1 Result")
st.markdown(result1)
result2 = client.predict(
prompt=query,
llm_model_picked="mistralai/Mistral-7B-Instruct-v0.2",
stream_outputs=True,
api_name="/ask_llm"
)
st.markdown("### Mistral-7B-Instruct-v0.2 Result")
st.markdown(result2)
combined_result = f"{result1}\n\n{result2}"
return combined_result
def display_file_content(file_path):
"""Display file content with editing capabilities."""
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
if st.session_state.view_mode == 'view':
# Display as markdown when viewing
st.markdown(content)
else:
# Edit functionality
edited_content = st.text_area(
"Edit content",
content,
height=400,
key=f"edit_{os.path.basename(file_path)}"
)
if st.button("Save Changes", key=f"save_{os.path.basename(file_path)}"):
try:
with open(file_path, 'w', encoding='utf-8') as f:
f.write(edited_content)
st.success(f"Successfully saved changes to {file_path}")
except Exception as e:
st.error(f"Error saving changes: {e}")
except Exception as e:
st.error(f"Error reading file: {e}")
def file_management_sidebar():
"""Redesigned sidebar with improved layout and additional functionality."""
st.sidebar.title("๐Ÿ“ File Management")
# Get list of .md files excluding README.md
md_files = [file for file in glob.glob("*.md") if file.lower() != 'readme.md']
md_files.sort()
st.session_state.files = md_files
if md_files:
st.sidebar.markdown("### Saved Files")
for idx, file in enumerate(md_files):
st.sidebar.markdown("---") # Separator between files
# Display time
st.sidebar.text(get_time_display(file))
# Display download link with simplified text
download_link = get_file_download_link(file)
if download_link:
st.sidebar.markdown(download_link, unsafe_allow_html=True)
# Action buttons in a row
col1, col2, col3, col4 = st.sidebar.columns(4)
with col1:
if st.button("๐Ÿ“„ View", key=f"view_{idx}"):
st.session_state.selected_file = file
st.session_state.view_mode = 'view'
with col2:
if st.button("โœ๏ธ Edit", key=f"edit_{idx}"):
st.session_state.selected_file = file
st.session_state.view_mode = 'edit'
with col3:
if st.button("๐Ÿ”„ Rerun", key=f"rerun_{idx}"):
try:
with open(file, 'r', encoding='utf-8') as f:
content = f.read()
# Prepare the prompt with the prefix
rerun_prefix = """For the markdown below reduce the text to a humorous fun outline with emojis and markdown outline levels in outline that convey all the facts and adds wise quotes and funny statements to engage the reader:
"""
full_prompt = rerun_prefix + content
# Perform AI lookup and save results
ai_result = perform_ai_lookup(full_prompt)
saved_file = save_ai_interaction(content, ai_result, is_rerun=True)
if saved_file:
st.success(f"Created fun version in {saved_file}")
st.session_state.selected_file = saved_file
st.session_state.view_mode = 'view'
except Exception as e:
st.error(f"Error during rerun: {e}")
with col4:
if st.button("๐Ÿ—‘๏ธ Delete", key=f"delete_{idx}"):
if delete_file(file):
st.success(f"Deleted {file}")
st.rerun()
else:
st.error(f"Failed to delete {file}")
st.sidebar.markdown("---")
# Option to create a new markdown file
if st.sidebar.button("๐Ÿ“ Create New Note"):
filename = generate_timestamp_filename("New Note")
with open(filename, 'w', encoding='utf-8') as f:
f.write("# New Markdown File\n")
st.sidebar.success(f"Created: {filename}")
st.session_state.selected_file = filename
st.session_state.view_mode = 'edit'
else:
st.sidebar.write("No markdown files found.")
if st.sidebar.button("๐Ÿ“ Create First Note"):
filename = generate_timestamp_filename("New Note")
with open(filename, 'w', encoding='utf-8') as f:
f.write("# New Markdown File\n")
st.sidebar.success(f"Created: {filename}")
st.session_state.selected_file = filename
st.session_state.view_mode = 'edit'
def main():
st.title("AI Knowledge Tree Builder ๐Ÿง ๐ŸŒฑ Cultivate Your AI Mindscape!")
# Process query parameters and AI lookup first
query_params = st.query_params
query = query_params.get('q', '')
show_initial_content = True # Flag to control initial content display
# First priority: Handle active query
if query:
show_initial_content = False # Hide initial content when showing query results
st.write(f"### Search query received: {query}")
try:
ai_result = perform_ai_lookup(query)
# Save the interaction
saved_file = save_ai_interaction(query, ai_result)
if saved_file:
st.success(f"Saved interaction to {saved_file}")
st.session_state.selected_file = saved_file
st.session_state.view_mode = 'view'
except Exception as e:
st.error(f"Error during AI lookup: {e}")
# File management sidebar
file_management_sidebar()
# Second priority: Display selected file content if any
if st.session_state.selected_file:
show_initial_content = False # Hide initial content when showing file content
if os.path.exists(st.session_state.selected_file):
st.markdown(f"### Current File: {st.session_state.selected_file}")
display_file_content(st.session_state.selected_file)
else:
st.error("Selected file no longer exists.")
st.session_state.selected_file = None
st.rerun()
# Show initial content: Either when first landing or when no interactive elements are active
if show_initial_content:
# First show the clickable terms with links
terms1 = extract_terms(DarioAmodeiKnowledge)
terms2 = extract_terms(Multiplayer_Custom_Hosting_Game_Servers_For_Simulated_Worlds)
all_terms = terms1 + terms2
col1, col2 = st.columns(2)
with col1:
st.markdown("### Dario Amodei Knowledge")
st.markdown("#### Related Links")
display_terms_with_links(terms1)
st.markdown(DarioAmodeiKnowledge)
with col2:
st.markdown("### Multiplayer Games")
st.markdown("#### Related Links")
display_terms_with_links(terms2)
st.markdown(Multiplayer_Custom_Hosting_Game_Servers_For_Simulated_Worlds)
if __name__ == "__main__":
main()