Giter Site home page Giter Site logo

zkhcreator / eval Goto Github PK

View Code? Open in Web Editor NEW

This project forked from corca-ai/eval

0.0 1.0 0.0 2.06 MB

[Corca / DEV] EVAL(Elastic Versatile Agent with Langchain) will execute all your requests. Just like an eval method!

License: MIT License

JavaScript 6.99% Python 88.64% CSS 0.10% HTML 4.27%

eval's Introduction

EVAL

EVAL(Elastic Versatile Agent with Langchain) will execute all your requests. Like the eval method!

You don't have to think about how. If you tell them the results you want, they'll search, code, run, and test the Internet themselves, and they'll return the final results.

simple_todo.mp4

EVAL Making a full-fledged web application with multiple files

wow.mov

EVAL Making a UI for itself

EVAL's self-managed github account. EVAL does everything except for signup and bio setting.

Examples

Here is an example.

EVAL's FEATURE

  1. Multimodal Conversation
    • It understands and generates data formats for text, image, dataframe, audio (TODO), video (TODO).
  2. Services
    • It can serve services (blocking processes) such as web apps.
  3. Evolving
    • It can create it's own tools by writing, modifying, executing and testing code.

BUILT-IN TOOLS

  1. Terminal
    • SyscallTracer
  2. Code Editor
    • READ: Read and understand file.
    • WRITE: Write code to create a new tool.
    • PATCH: Correct the error throught the code patch if an error occurs.
    • DELETE: Delete code in file for a new start.
  3. Search
    • Google, Bing, Wikipedia
    • Custom DB Search (Currently using Corca's Wine Data in https://www.workershop.kr/en)
      • Use GPT index to quickly find the information you need in a document and use that information to answer
    • Requests.get (Get information from anywhere you want)
  4. Image Understanding, Generation, Editing
    • Image Understanding
      • Image Understanding: blip-image-captioning
      • Visual Question&Answering: blip-vqa
    • Image Generation: Stable Diffusion 1.5
    • Image Editing
      • Replace or remove an object: Stable Diffusion Inpainting
      • Change Image's style: InstructPix2Pix

Thanks to LangChain, Visual ChatGPT, llama index.

CUSTOM TOOLS

We also don't know what tools EVAL will create. Every day, It will create the right tools to execute your request.


Usage

  1. Environment variables
  2. Run with docker-compose
  3. Send request to EVAL

1. Environment Variables

You need to write some environment variables in the .env file. Refer .env.example if you don't know how to format it.

Mandatory

Manatory envs are required in order to serve EVAL.

  • OPENAI_API_KEY - OpenAI api key

Optional

Each optional env has default value, so you don't need to set unless you want to change it.

  • EVAL_PORT - port (default: 8000)
  • SERVER - server address (default: http://localhost:8000)
  • LOG_LEVEL - INFO | DEBUG (default: INFO)
  • BOT_NAME - give it a name! (default: Orca)
  • MODEL_NAME - model name for GPT (default: gpt-4)

For More Tools

Some tools requires environment variables. Set envs depend on which tools you want to use.

  • Google search tool
    • SERPAPI_API_KEY
  • Bing search tool
    • BING_SEARCH_URL
    • BING_SUBSCRIPTION_KEY

2. Run with docker-compose

  • There are 2 services in docker-compose.yml
    • eval - without GPU, much lighter
      docker-compose up --build eval
    • eval.gpu - with GPU, for multi-modal conversation
      docker-compose up --build eval.gpu
  • The one with GPU is much heavier and unstable for now because of the massive dependencies. We recommend you to use the one without GPU if you don't need multi-modal conversation.

3. Send request to EVAL

  • Use the Web GUI to use EVAL in ease

    • Go to http://localhost:8000 in your browser
  • Or you can manually send request to EVAL with APIs.

    • POST /api/execute

      • session - session id

      • files - urls of file inputs

      • prompt - prompt

      • examples

        curl -X POST -H "Content-Type: application/json" -d '{"session": "sessionid", "files": [], "prompt": "Hi there!"}' http://localhost:8000/api/execute
        http POST http://localhost:8000/api/execute session=sessionid files:='[]' prompt="Hi there!"
  • It also supports asynchronous execution. You can use POST /api/execute/async instead of POST /api/execute, with same body.

    • It returns id of the execution. Use GET /api/execute/async/{id} to get the result.

TODO

  • GUI
  • memory saving
  • session manage
  • convert to alpaca
  • prompt upgrade
  • give a tool to create tools
  • etc.

Reference

Thanks to the following repositories.

eval's People

Contributors

adldotori avatar hanchchch avatar zkhcreator avatar eltociear avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.