Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python backend support + OpenAI Functions & Tools #53

Open
wants to merge 36 commits into
base: main
Choose a base branch
from

Conversation

EniasCailliau
Copy link

@EniasCailliau EniasCailliau commented Jul 13, 2023

🏓 This PR build atop #49

This PR introduces the capability to host AI companions using Python on Steamship. The objective is to match the current JavaScript backend's functionality while introducing 2 additional features: Tools & Voice Generation.

Features

  1. Python Support: This PR introduces a Python back-end stack to host AI companions. Now, developers can host AI companions using JavaScript or Python.

  2. OpenAI Functions: Added support for tools/functions, including search, image generation, video generation, and voice generation.

  3. Backend Voice Generation: Voice generation via Elevenlabs

Composability

The Python stack utilizes LangChain as an abstraction layer to provide composability. This sets the stage for a future PR integrating the vendors featured in the JavaScript "Getting Started" stack.

@ykhli
Copy link
Contributor

ykhli commented Jul 14, 2023

Thanks so much for the contribution @EniasCailliau!!

  1. could you split out this PR into 3 smaller PRs? I think if we can keep one feature per PR for ease of testing/review that'd be amazing.
  2. I'm curious if there's any public, ready-to-use steamship agent users can try out easily? The idea is if users can try out the agent without having to write a full agent to get started it'd be less friction.
  3. I noticed you added "telegram": "OPTIONAL_TELEGRAM_LINK" to every companion under the config file -- if I understood correctly, the telegram feature can only be used when the frontend calls steamship? If that's the case I think it may make sense to remove the telegram setting from the general config as it's a steamship specific feature. Please let me know if I misunderstood it though!

@ykhli ykhli self-requested a review July 14, 2023 05:28
Copy link
Contributor

@ykhli ykhli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrote down a few changes above!

@EniasCailliau
Copy link
Author

@ykhli Great suggestions. Will start working on them now.

1.

Absolutely!

Here's my thinking let me know if that sounds right to you:

  1. feat: Multimodal block display + Steamship agent #49 Is a PR that ads ready-to-go agent that is up and running. Users can run the instructions of the home readme.md and get started, without even looking at the python folder.
  2. The Quick Start guide in the Readme.md of this repo + init_companion.py uses a pre-packaged ai-companion agent hosted under a16z's Steamship account. Following the quick-start doesn't require users to host their own package or modify the api.py, that's optional. -> I'll isolate these bits and submit a new PR.
  3. A PR with the python stack

2.

Great idea, that's what #49 attempts to do. Meanwhile, the quick-start guide of this PR solves for "add your own personality in the companions folder and run it without Python coding".

3.

Yea, you're right, this PR doesn't add support for Telegram in the JS stack. We would love to feature the Telegram link in the front end though. Do you see a clear way to support that outside of the companions.json file? This is actually a change happening in #49 so I'll ask @eob to follow up on that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants