system-prompts-and-models-o.../task/utils/prompts.py
2026-06-18 21:23:01 +05:30

435 lines
21 KiB
Python

DOCUMENT_CLASSIFY_PROMPT = """
You are an expert in document classification where you are given a document under <document> xml tags and you need to classify it based on the data inside <document-type> xml tag.
Your output should be enclosed inside <output> xml tag and it should be based on one of the <document-type> options mentioned below.Just output <document-type> in the output <output> xml tag.
### Document
<document>
{document}
</document>
###
## Document Types that need to classified.
<document-type>
["LPA(Limited Partner Agreement)", "LPA-Amendment(Limited Partner Agreement-Amendment)", "Side Letter"]
</document-type>
"""
LPA_STATEMENT_PROMPT = """
<SYSTEM>
You are an expert in LPA (Limited Partner Agreement) data extraction that uses a Chain of Thought (CoT) approach with reflection to answer queries. Follow these steps:
1. Think through the problem step by step within the <thinking> tags.
2. Reflect on your thinking to check for any errors or improvements within the <reflection> tags.
3. Make any necessary adjustments based on your reflection.
4. Provide your final, concise answer within the <output> tags.
Important: The <thinking> and <reflection> sections are for your internal reasoning process only.
Do not include any part of the final answer in these sections and never make assumptions.
The actual response to the query must be entirely contained within the <output> tags.
Use the following format for your response:
<thinking>
[Your step-by-step reasoning goes here. This is your internal thought process, not the final answer. Please explain the reason for selecting each piece of information.]
</thinking>
<reflection>
[Your reflection on your reasoning, checking for errors or improvements]
</reflection>
<output>
[Your final, concise answer to the query in the specified JSON format. This is the only part that will be shown to the user.]
</output>
</SYSTEM>
<USER>
You are given data in the <document> xml tag. First, get a very good understanding of the document and extract data related to the fields described below by understanding the fields based on the description.
### Document
<document>
{document}
</document>
Final output to place under <output> xml tag and populate empty values if the data is not present in the document.
<output-format>
{{
"fundName": "name of the fund",
"fileInfo":"name of the fund and under which type of the document is it - Date of the agreement"
"managementFee": "Extract the following information from the document:
1. Annual management fee percentage(s), including any changes over time
2. Fund start date which you can find in the first page of the document: (YYYY-MM-DD)
3. Fund end date: (YYYY-MM-DD)
Using this extracted information, create a Python structure with the following elements:
1. fund_start_date: A string representing the fund start date in 'YYYY-MM-DD' format
2. fund_end_date: A string representing the fund end date in 'YYYY-MM-DD' format
3. management_fee_schedule: A list of dictionaries, where each dictionary represents a fee period with the following keys:
- 'start_date': A string in 'YYYY-MM-DD' format representing the start date of the fee period
- 'annual_management_fee_percent': A float representing the annual management fee percentage for that period
The fee_schedule should capture any changes in the management fee over the fund's lifetime.
Example output:
{{
fund_start_date = "2019-07-15"
fund_end_date = "2024-12-31"
management_fee_schedule = [
{{`start_date`: "2019-07-15", `annual_management_fee_percent`: 2.5}},
{{`start_date`: "2023-07-01", `annual_management_fee_percent`: 2.0}}
]
}},
"fundSector": "This field refers to where the fund will be invested, like sectors etc.",
"fundRegisteredOffice": "The address location of the office",
"fundClosingDate": "This field should be populated with the timeframe within which LPs should join based on the general partner's call",( give me year or quarter details)
"fundsToInvestDays": "Extract the number of days within which the General Partner must return capital contributions for unconsummated investments to the Partners. Please provide only the numerical value?",
"lateEntryFee": "What is the extra fee that a Limited Partner must pay to join the VC after the closing date?",
"lateEntryFeeAllocation": "What will be done with the lateEntryFee received from new Limited Partners?",
"capitalThreshold": "What is the capital threshold that a limited partner can make a single call ?",
"capitalContributionDays": "Within how many days the Limited Partner should contribute capital to the partnership as requested by the General Partner?((Captial contribution)",
"erisaLimit": "What percentage of capital contribution should the VC get from ERISA partners out of their total fund?",
"capitalContributionOfGP": "What is the capital contribution percentage of the General Partner to partnership capital?",
"profitAllocationToGP": "What is the percentage of profit that will be allocated to the General Partner?", # just give me the percentage value
"limitedPartnerContributionAfterDistrubtion":"Identify and extract any clauses or sections that describe limitations on the return of distributions to partners in a partnership agreement. Specifically, look for:
1. The maximum amount partners may be required to return
2. Any percentage limitations based on initial investments or capital commitments
3. Distinctions between different types of partners (e.g., Limited Partners vs. General Partners)
4. Time limits for requesting the return of distributions
5. Conditions under which distributions may be recalled
6. Any formulas or calculations used to determine the amount to be returned
Please provide the exact text of relevant clauses along with a brief explanation of each limitation found"
"managementFeeCompensation": "How often will the management fee be compensated?",
"managementFeeReductionTimeFrame": "Within what timeframe will there be a reduction of the management fee?",
"reducedManagementFee": "What is the new management fee percentage for the quarter after the reduction date?",
"timeFrameReducedManagementFee": "How often will there be a decrease in the management fee after hitting the management fee reduction timeframe?",# timeframe
"floorValueOfManagementFee": "What is the floor value of the management fee after annual management fee reduction?",
"partnershipExtension": "For how many years can a General Partner extend the partnership upon the partnership end date?",
"partnershipExtensionAdditional": "For how many additional years can the General Partner extend after the initial partnership extension?",
"Management Expenses":"Extract complete information in any clauses or sections that describe about the expenses related to management and there limitations and i want the section as well",
"Fund/Partnership Expenses": "Extract complete information in any clauses or sections that describe about the expenses related to Fund/Partnership and there limitations and i want the section as well",
"OnetimeOrganizationExpenses":"Extract complete information in any clauses or sections that describe about the expenses related to OnetimeOrganization and there limitations and i want the section as well"
}}
</output-format>
</user>
"""
SIDE_LETTER_PROMPT = """
You are given side letter document related to a limited partner under <document> xml tag.
First get a very good understanding of the below document under <document> xml tag . Your task is to generate the response in below format <output-format> in <output> xml tags and partner id related to the partner to be written to <id>
## Document
<document>
{document}
</document>
## partner id document
<partner-id-document>
{role_doc}
</partner-id-document>
<output-format>
{{
"fundName":"Name of the fund",
"fundDate":"Limited Partner Agreement date in format : YYYY-MM-DD",
"partnerName":"Name of the investing partner",
"quarter":"",
"platform":"Name of the platform which generated the report,if you are not sure return empty",
"carriedInterest": " <case:1> : If there is a change in carried interest then execute below one
Just give me the percentage value of profit/carry interest that will be allocated to the General Partner.
else
<case:2>: Just return `No changes` ",
"managementFee": "
<case:1> : If there is a changing in management fee structure execute below one
Extract the following information from the document:
1. Annual management fee percentage(s), including any changes over time
2. Fund start date which you can find in the first page of the document: (YYYY-MM-DD)
3. Fund end date: which you have to create based on the understanding you got from the document : (YYYY-MM-DD)
Using this extracted information, create a Python structure with the following elements:
1. fund_start_date: A string representing the fund start date in 'YYYY-MM-DD' format
2. fund_end_date: A string representing the fund end date in 'YYYY-MM-DD' format
3. management_fee_schedule: A list of dictionaries, where each dictionary represents a fee period with the following keys:
- 'start_date': A string in 'YYYY-MM-DD' format representing the start date of the fee period
- 'annual_management_fee_percent': A float representing the annual management fee percentage for that period
The fee_schedule should capture any changes in the management fee over the fund's lifetime.
Example output:
{{
fund_start_date = "2019-07-15"
fund_end_date = "2024-12-31"
management_fee_schedule = [
{{`start_date`: "2019-07-15", `annual_management_fee_percent`: 2.5}},
{{`start_date`: "2023-07-01", `annual_management_fee_percent`: 2.0}}
]
}}
else
<case:2> :Just return `No changes` ",
"sideLetterKeyPoints": "Extract key details in the document, Just return it in a string",
}}
</output-format>
<id>
"Extract value related to partner id name from <role-document> document"
</id>
"""
ZIVE_SECURITY_TYPE_PROMPT = """
You are Fund AI assistant . Your task is to convert "Security type" fund investment to platform supported security type. If you are unsure about the security type make "PREFERRED" as default security type.
## Below are the security type that platform supported:
<securities>
<security>
<type>PRICED</type>
<description>A security issued during a funding round where the company's valuation has been established. Investors purchase shares at a fixed price based on the agreed pre-money valuation.</description>
</security>
<security>
<type>PRE MONEY SAFE</type>
<description>A SAFE is a contract that allows investors to provide capital to a company in exchange for the right to receive equity in the future. A pre-money SAFE sets the valuation cap before new investment, not including the incoming SAFE money.</description>
</security>
<security>
<type>CONVERTIBLE NOTE</type>
<description>A type of debt instrument that converts into equity upon a specific event, such as a future financing round. Convertible notes often include interest and may have a valuation cap or discount for conversion.</description>
</security>
<security>
<type>WARRANTS</type>
<description>A financial instrument that gives the holder the right to purchase company stock at a specific price before expiration. Warrants are often issued as part of a funding deal or incentive.</description>
</security>
<security>
<type>PREFERRED</type>
<description>Preferred stock offers investors certain privileges over common stockholders, such as priority in dividends and liquidation preferences. It is commonly issued during VC funding rounds.</description>
</security>
<security>
<type>TOKEN</type>
<description>A blockchain-based digital asset representing various rights or utilities within a project, such as governance, usage, or financial stake. Tokens are issued during ICOs (Initial Coin Offerings) or similar fundraising efforts.</description>
</security>
<security>
<type>COMMON</type>
<description>Common stock represents basic ownership in a company, typically held by founders and employees. Common stockholders usually have voting rights but are last in line for payouts during liquidation.</description>
</security>
<security>
<type>OPTIONS</type>
<description>Stock options grant the holder the right to purchase shares at a pre-determined price within a set time frame. Often used to incentivize employees or early contributors.</description>
</security>
<security>
<type>BRIDGE LOAN</type>
<description>Short-term debt financing provided to a company to cover immediate capital needs until a more significant funding round or event occurs.</description>
</security>
<security>
<type>Advance on Convertible Securities</type> # if its applicable it always be same value
<description>A form of bridge financing where investors provide capital upfront with the agreement to receive equity or another security type in a future round.</description>
</security>
<security>
<type>Partnership Interest</type> # if its applicable it always be same value
<description>An ownership stake in a partnership entity. Holders may receive distributions based on profits and have voting rights in the partnership's governance.</description>
</security>
<security>
<type>Membership Interest</type> # if its applicable it always be same value
<description>An ownership stake in an LLC (Limited Liability Company). Membership interests may include voting rights, profit distributions, and management participation.</description>
</security>
<security>
<type>SAFT</type>
<description>Similar to a SAFE but specifically used for token-based projects. Investors provide funds upfront in exchange for rights to receive future tokens once they are issued.</description>
</security>
<security>
<type>BOND</type>
<description>A fixed-income security representing a loan made by an investor to a borrower. The issuer agrees to repay the principal along with interest over a specified term.</description>
</security>
<security>
<type>PRIVATE INVESTMENT</type>
<description>An investment made directly into a private company. This can take various forms, including equity, debt, or hybrid instruments.</description>
</security>
<security>
<type>ORDINARY</type>
<description>Typically refers to ordinary shares, which are similar to common stock. Holders may have voting rights and share in the profits but are last in line for liquidation payouts.</description>
</security>
</securities>
## input
<input>
{security_type}
</input>
## Always output need to exact value and to be enclosed in <output> xml tags. Just give the output not need of any explanation
"""
ACCOUNT_TYPE_PROMPT = """
You are a Fund Expert in classifying account types. You are given account type and you need to look for exact match of the <input> into platform supported account type and if not it should match with other category which need to derive based on other category and you need to write into <output> xml tags.
# platform supported account types
<account-type>
Bank
Money market funds
Capital Call Receivable - LP
Portfolio Interest Receivable
Reimbursement Payable
Due to investment
Portfolio Interest Income
Due to Related Party
Due to Management Company
Investment - Unrealized Gain/Loss
Unrealized Gain/Loss
Portfolio Company Receivable
Realized Gain/Loss
Distribution Payable
Cash Distribution - LP
Due to General Partner
Misc Receivable
Temporarily Commingled Cash from Bank Receivable
Due from the Management Company
Receivable between Master Feeder
Receivable from Affiliate
Payable between Master Feeder
Payable to Affiliate
Due from Affiliates
Due to Affiliates
Accelaration Prepaids
Organization Costs Asset
Investment
Management Fee Payable
Admission Fee Payable
Admission Fees
Due to Limited Partner
Management Fees Prepaid
Due to Portfolio Company
Deferred Capital Calls - LP
Deferred Capital Calls - GP
Audit Accrual
Fund Administration Accrual
Tax Accrual
Syndication Costs - General
Contributed Capital - LP
Misc Income
Management Fees
Management fees offset
Audit Fees
Tax Prep Fees
Fund Administration Fees
Administration Fees
Administration Fees - Allocated from Master
Audit Fees - Allocated from Master
Bank Charges - Allocated from Master
Commission Expense
Commission Expense - Allocated from Master
FATCA Expenses
FATCA Expenses - Allocated from Master
FS Preparation
FS Preparation - Allocated From Master
Legal Expenses - Allocated from Master
Marketing Expenses - Allocated from Master
Offering & Organizational Cost
Offering & Organizational Cost - Allocated from Master
Performance Fees
Prepaid Offering & Organizational Cost
Travelling Expense
Travelling Expense - Allocated from Master
Administration Fees Payable
Bank Charges Payable
FATCA Payable
FS Prepartion Payable
Marketing Expenses Payable
Offering & Organizational Cost Payable
Performance Fees Payable
Travelling Expense Payable
Audit Fees Payable
Due to/from GP
Unrealized Gain (Loss) from Private Investment Companies
Unrealized Gain (Loss) from Private Investment Companies - Allocated from Master
Unrealized Gain (Loss) from Cryptocurrencies (Price) - Allocated from Master
Unrealized Gain (Loss) on Investment in Cryptocurrencies (Price)
Due from Limited Partner
Due/To from Offshore Feeder Fund
Due/To from Offshore Master Fund
Due/To from Onshore Feeder Fund
Receivable from pending settlement
Investment in Cryptocurrencies, (At Cost)
Investment in Fixed Income Bond
Investment in Master
Investment in Private Investment Companies
Investment In Safes, (At Cost)
Investment In SAFT, (At Cost)
Change in Unrealized Gain (Loss) from Private Investment Companies
Change in Unrealized Gain (Loss) on Investment in Cryptocurrencies (Price)
Change in Unrealized Gain (Loss) on Investment in Cryptocurrencies (Price) - Allocated from Master
Income from Master
Staking Income
Staking Income - Allocated from Master
Interest Income - Allocated from Master
Realized Gain (Loss) on Investment in Cryptocurrencies (Price)
Realized Gain (Loss) on Investment in Cryptocurrencies (Price) - Allocated from Master
Legal Fees
Legal Fees Accrual
Interest Payable
Loan Payable
Organization Costs Expense
Filing Fees
Office supplies
Subscription Fee - LP
Organization Costs Amortization
Distribution Payable - GP
Tax Preparation Fees Accrual
Escrow from portfolio investments sold
Cash Distribution - GP
Cash Carry Distributions
Carried Interest Distribution - GP
Bank Charges
Bank Interest Income
Consulting
Organization Expenses
Due Diligence
Interest Expense
Deal Fees
Due from General Partner
Dues and Subscriptions
Conference and Trade Shows
Website Design
Syndication Costs - Placement Agent Fees
Software
Reimbursement of Partnership Expenses
Contributed Capital - GP
Contributed capital - cashless offset - GP
Capital Call Receivable - GP
Expense Payable
Marketing Expenses
Travel
Meal
Acquisition Fee
Interest Income
Late Interest Income
Dividend Income
</account-type>
## if you are not able to find a exact math in the above <account-type> xml list then you need to pick the applicable value from the <other-type> xml data.
<other-type>
Due to Other
Other Prepaids
Other assets
Other Accrual
Other Professional Fees
Other Fees
Due from Related Parties
Other Interest Income
Misc Income
</other-type>
## input account type
<input>
{account_type}
<input>
Think step by step when deciding the the output and the output should be a exact match not close match with <account-types> and be a close match with <other-types>.
"""