An AI-powered library for conducting structured interviews
Project description
GuidedCapture
An AI-powered library for conducting structured interviews and synthesizing responses into desired output formats.
Overview
GuidedCapture is a flexible library that helps you conduct goal-oriented interviews using Large Language Models (LLMs). It generates relevant questions based on your objectives and synthesizes responses into your desired output format.
Key Features
- Goal-Oriented Interviewing: Start with a clear topic and desired output format
- LLM-Powered Question Generation: Automatically generates relevant, probing questions
- UI-Agnostic Design: Works with any interface (CLI, web, mobile, etc.)
- Flexible Answer Collection: Submit answers progressively or in bulk
- Intelligent Synthesis: Processes Q&A pairs into your desired output format
- State Management: Save and resume interview sessions
- Multiple LLM Support: Works with various LLM providers (OpenAI, Anthropic, etc.)
Installation
pip install guided-capture
Quick Start
from openai import OpenAI
from guided_capture import GuidedCapture
# Initialize your LLM client
client = OpenAI(api_key="your-api-key")
# Create a new interview session
capture = GuidedCapture(
topic="Company Vision",
output_format_description="A concise company mission statement",
llm_client=client
)
# Get questions
questions = capture.get_questions()
# Collect answers (example with CLI)
for question in questions:
print(f"\n{question}")
answer = input("Your answer: ")
capture.submit_answer(question, answer)
# Get final output
result = capture.process_answers()
print("\nFinal Output:", result)
Advanced Usage
Bulk Answer Submission
# Submit multiple answers at once
answers = {
"What is your company's main goal?": "To revolutionize AI accessibility",
"Who is your target audience?": "Small businesses and startups",
# ... more answers
}
capture.submit_answers_bulk(answers)
State Management
# Save session state
state = capture.get_state()
import json
with open("session.json", "w") as f:
json.dump(state, f)
# Load session state
with open("session.json", "r") as f:
state = json.load(f)
capture = GuidedCapture.load_state(state, llm_client)
Custom Prompts
capture = GuidedCapture(
topic="Product Features",
output_format_description="A list of key features",
llm_client=client,
question_generation_prompt_template="Custom prompt for questions...",
synthesis_prompt_template="Custom prompt for synthesis..."
)
Requirements
- Python 3.7+
- OpenAI API key (or other LLM provider credentials)
- Required packages:
- openai (or other LLM client libraries)
- typing (included in Python 3.5+)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT License - see LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file guided_capture-0.1.0.tar.gz.
File metadata
- Download URL: guided_capture-0.1.0.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db67dc0f23d0886a171069aa15ad716f65e3120b2f85be9e8c5e800b886f9709
|
|
| MD5 |
b7aa378eb08dcc80e7f9f631b3d9f6f3
|
|
| BLAKE2b-256 |
5303df6bc50b43e8928ec5cbfbfcfab59aa9c7c2df9ca86cf86ca7b57a703d0a
|
File details
Details for the file guided_capture-0.1.0-py3-none-any.whl.
File metadata
- Download URL: guided_capture-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
74bb26f77e2811695df539f509b81fd0b2c0aa09f561ba1f7659ce0e0c95abb6
|
|
| MD5 |
f1acceb96a4dc69c05481369640a8d89
|
|
| BLAKE2b-256 |
a2a37ffcf0d0f6c23fc624a16e0edf26e562f08a30ae59a3584f412bf607be63
|