Spaces:
Sleeping
Sleeping
File size: 3,346 Bytes
41f73cb 4a2750f 41f73cb 4a2750f c178699 41f73cb 8436e7c c178699 8436e7c c178699 8436e7c 41f73cb 4a2750f 8436e7c c178699 8436e7c c178699 8436e7c c178699 8436e7c 4a2750f 8436e7c eb6725a 41f73cb 8436e7c 41f73cb c178699 41f73cb 4a2750f 8436e7c c178699 8436e7c 41f73cb c178699 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
import streamlit as st
import pandas as pd
from transformers import AutoTokenizer, AutoModel
import torch
import graphrag
import inspect
# Diagnostic Section
st.title("Graphrag Module Investigation")
st.write("Contents of graphrag module:")
module_contents = dir(graphrag)
st.write(module_contents)
st.write("Detailed information about graphrag module contents:")
for item in module_contents:
attr = getattr(graphrag, item)
st.write(f"Name: {item}")
st.write(f"Type: {type(attr)}")
if inspect.isclass(attr):
st.write("Class Methods and Attributes:")
for name, value in inspect.getmembers(attr):
if not name.startswith('_'): # Exclude private methods/attributes
st.write(f" - {name}: {type(value)}")
if callable(attr):
st.write("Signature:")
st.write(inspect.signature(attr))
st.write("Docstring:")
st.write(inspect.getdoc(attr))
st.write("---")
# Main Application Section
st.title("Graphrag Text Analysis")
@st.cache_resource
def load_model():
bert_model_name = "bert-base-uncased"
tokenizer = AutoTokenizer.from_pretrained(bert_model_name)
bert_model = AutoModel.from_pretrained(bert_model_name)
# Initialize Graphrag model
# Note: This part may need to be adjusted based on the actual structure of graphrag
model = None
for item in module_contents:
if 'model' in item.lower() or 'rag' in item.lower():
model_class = getattr(graphrag, item)
if inspect.isclass(model_class):
try:
# Attempt to initialize the model
# You may need to adjust the parameters based on the actual class signature
model = model_class(bert_model)
st.success(f"Successfully initialized {item}")
break
except Exception as e:
st.write(f"Tried initializing {item}, but got error: {str(e)}")
if model is None:
st.error("Could not initialize any Graphrag model. Please check the module structure.")
return tokenizer, model
def process_text(text, tokenizer, model):
if model is None:
return "Model not initialized"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
outputs = model(**inputs)
# Process outputs based on your specific task
# This is a placeholder; adjust according to your model's output
if hasattr(outputs, 'logits'):
logits = outputs.logits
elif isinstance(outputs, torch.Tensor):
logits = outputs
else:
return f"Unexpected output format: {type(outputs)}"
probabilities = torch.softmax(logits, dim=1)
return probabilities.tolist()[0]
tokenizer, model = load_model()
# Text input for single prediction
text_input = st.text_area("Enter text for analysis:")
if st.button("Analyze Text"):
if text_input:
result = process_text(text_input, tokenizer, model)
st.write(f"Analysis Result: {result}")
else:
st.write("Please enter some text to analyze.")
# Note about sample data
st.markdown("Note: To use a CSV file, you would typically upload it and process each row. For simplicity, we're using direct text input in this example.") |