Skip to main content

a drop-in replacement for the standard streamlit textarea, offering enhanced autocomplete features powered by AI.

Project description

streamlit-copilot-textarea

a drop-in replacement for the standard streamlit textarea, offering enhanced autocomplete features powered by AI.

Installation

pip install streamlit-copilot-textarea

Usage

from streamlit_copilot_textarea import st_copilot_textarea

value = st_copilot_textarea(
    prompt_template="please complete the text: {input_text}",
    api_url="http://localhost:8000/generate",
    requests_per_minute=20,
    max_tokens=10,
    stop=["\n", "."],
)

st.write(f"Your text: {value}")
  • prompt_template: the prompt template to be sent to the api. It must contain {input_text}, which will be replaced by the user input.
  • api_url: the url of the api to be used (see below for sever).
  • requests_per_minute: the number of requests per minute to be made to the api.
  • max_tokens: the maximum number of tokens to be generated.
  • stop: the tokens where the generation should stop.

server.py: fastapi example

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Payload(BaseModel):
    prompt: str
    # Add other fields that might be part of model_kwargs
    temperature: Optional[float] = None
    max_tokens: Optional[int] = None

@app.post("/generate")
async def generate(payload: Payload):
    # here the prompt's {input_text} is already replaced with the user input.
    prompt = payload.prompt
    completion_text = request_chatgpt_here(prompt, payload.temperature, payload.max_tokens)
    response = {"choices": [{"text": completion_text}]}
    return response

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

test your copilot api

curl -X POST "http://localhost:8000/generate" -H "Content-Type: application/json" -d '{"prompt": "please complete the text: Human and AI", "temperature": 0.5, "max_tokens": 10}'

Buiding from source

Prerequisites

  • nodejs >= 18.x
  • yarn >= 1.22.x
  • poetry >= 1.2.x
  • python >= 3.8.x

Building

./build.sh

Publishing

poetry publish

Thanks

License

This project is licensed under the MIT License - see the LICENSE file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamlit_copilot_textarea-1.0.2.tar.gz (811.9 kB view details)

Uploaded Source

Built Distribution

streamlit_copilot_textarea-1.0.2-py3-none-any.whl (446.2 kB view details)

Uploaded Python 3

File details

Details for the file streamlit_copilot_textarea-1.0.2.tar.gz.

File metadata

File hashes

Hashes for streamlit_copilot_textarea-1.0.2.tar.gz
Algorithm Hash digest
SHA256 51e85070cda8f1a9dd54c39b195d83d14e647cf40aad0f4dec32e917dec0fbf5
MD5 0df776869eea885276c350f525e89fc4
BLAKE2b-256 88ec66ea5e82b01c1895fff6b63ab090d93a9de6bd87263bc9b69428f96398c0

See more details on using hashes here.

File details

Details for the file streamlit_copilot_textarea-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for streamlit_copilot_textarea-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3824c3f54054f4cc94f18d7b32865b7534a7c49f4f2d9ec156a19d6fcfd9de54
MD5 6ed8bd972638d4ee6441b781a8b011b0
BLAKE2b-256 6d42fbccdb8c03c370ef851801163096b2c4147f2bd4ac269fcabd161b3c96fb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page