view chat_analysis.xml @ 1:7b33a7a006c7 draft

planemo upload for repository https://github.com/goeckslab/ChatAnalysis commit 1aba9600459e8a3136e5516ece74eecd9cb4f5fc
author goeckslab
date Wed, 13 Nov 2024 19:35:51 +0000
parents be4bfd3e9342
children 5c1018ad5eb3
line wrap: on
line source

<tool id="interactive_tool_chat_analysis" tool_type="interactive" name="Chat with your data" version="0.1">
    <requirements>
        <container type="docker">
            quay.io/goeckslab/chatanalysis:main
        </container>
    </requirements>
    <entry_points>
        <entry_point name="Chat with $input_dataset.element_identifier" requires_domain="True">
            <port>
                8501
            </port>
            <url>
                /
            </url>
        </entry_point>
    </entry_points>
    <command>
        <![CDATA[
        echo "Starting Streamlit" &&
        echo "Script executed from: `pwd`" &&
        mkdir -p plots &&
        ln -sf $__tool_directory__/.env /ChatAnalysis/.env &&
        streamlit run /ChatAnalysis/chat_analysis.py
            "$openai_api_key_file"
            "$groq_api_key_file"
            "$chat_history"
            "$export_csv"
            "./plots"
            "$input_dataset"
        ]]>
    </command>
    <configfiles>
        <configfile name="openai_api_key_file"><![CDATA[
            $__user__.extra_preferences.get('chatgpt|api_key')
        ]]></configfile>
        <configfile name="groq_api_key_file"><![CDATA[
            $__user__.extra_preferences.get('groq|api_key')
            ]]>
        </configfile>
    </configfiles>
    <stdio>
        <exit_code range="0:0" level="log"/>
    </stdio>
    <inputs>
        <param name="input_dataset"  type="data" format="csv,tabular" label="Data(csv or tsv) you want to chat with" optional="false"/>
    </inputs>
    <outputs>
        <data name="chat_history" format="html" label="${tool.name} -- chat history html on ${on_string}"/>
        <data name="export_csv" format="csv" label="${tool.name} -- the exported csv you selected on ${on_string}"/>
        <collection name="chat_plots" type="list" label="${tool.name} -- the generated plots on ${on_string}" >
            <discover_datasets pattern="(?P&lt;designation&gt;.+)\.png" format="png" directory="plots" />
        </collection>
    </outputs>
    <tests>
        <test expect_num_outputs="2">
            <param name="input_dataset" value="test.csv"/>
            <output name="chat_history" file="chat_history.html" compare="sim_size" />
            <output name="export_csv" file="exported.csv" compare="sim_size" />
        </test>
    </tests>
    <help>
        Analyze and visualize a dataset with a Chat Agent.

        Start a ChatAnalysis instance after selecting a dataset — we provide free access to some LLMs.

        You are encouraged to use your own API keys, as the provided free access has limits. You can obtain a **free API key** for BambooLLM by signing up at https://pandas-ai.com and a **free API key** for Groq by signing up at https://groq.com.

        If you wish to set the OpenAI API key beforehand, go to **User → Preferences → Manage Information → ChatGPT → OpenAI API Key**. This way, you won’t need to set the OpenAI API key each time you use the app.

        Similarly, to set the Groq API key beforehand, navigate to **User → Preferences → Manage Information → Groq → API Key**.

        Alternatively, you can set the API key directly in the ChatAnalysis instance after it has started.
    </help>
</tool>