Skip to content

Commit

Permalink
Search v2 functionality (#33)
Browse files Browse the repository at this point in the history
* Add support for search_indices (#64)

* Add support for search_indices

* Updated with Schnurr's comments

* Add version to search (#65)

* Make search query required (#67)
  • Loading branch information
hallacy committed Sep 9, 2021
1 parent 7febb75 commit 205d063
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 11 deletions.
4 changes: 2 additions & 2 deletions openai/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@
File,
FineTune,
Model,
Search,
)

from openai.error import OpenAIError, APIError, InvalidRequestError # noqa: E402,F401
from openai.error import APIError, InvalidRequestError, OpenAIError # noqa: E402,F401
7 changes: 4 additions & 3 deletions openai/api_resources/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from openai.api_resources.answer import Answer # noqa: F401
from openai.api_resources.classification import Classification # noqa: F401
from openai.api_resources.completion import Completion # noqa: F401
from openai.api_resources.engine import Engine # noqa: F401
from openai.api_resources.error_object import ErrorObject # noqa: F401
from openai.api_resources.file import File # noqa: F401
from openai.api_resources.answer import Answer # noqa: F401
from openai.api_resources.classification import Classification # noqa: F401
from openai.api_resources.model import Model # noqa: F401
from openai.api_resources.fine_tune import FineTune # noqa: F401
from openai.api_resources.model import Model # noqa: F401
from openai.api_resources.search import Search # noqa: F401
15 changes: 15 additions & 0 deletions openai/api_resources/search.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from openai.api_resources.abstract.api_resource import APIResource


class Search(APIResource):
api_prefix = "v1"
OBJECT_NAME = "search_indices"

@classmethod
def class_url(cls):
return "/%s/%s" % (cls.api_prefix, cls.OBJECT_NAME)

@classmethod
def create_alpha(cls, **params):
instance = cls()
return instance.request("post", f"{cls.class_url()}/search", params)
52 changes: 47 additions & 5 deletions openai/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
import signal
import sys
import warnings

import openai
from openai.validators import (
write_out_file,
apply_necessary_remediation,
apply_optional_remediation,
read_any_format,
get_validators,
read_any_format,
write_out_file,
)

import openai


class bcolors:
HEADER = "\033[95m"
Expand Down Expand Up @@ -102,7 +102,6 @@ def generate(cls, args):

@classmethod
def search(cls, args):
# Will soon be deprecated and replaced by a Search.create
params = {
"query": args.query,
"max_rerank": args.max_rerank,
Expand All @@ -113,6 +112,9 @@ def search(cls, args):
if args.file:
params["file"] = args.file

if args.version:
params["version"] = args.version

resp = openai.Engine(id=args.id).search(**params)
scores = [
(search_result["score"], search_result["document"])
Expand Down Expand Up @@ -221,6 +223,17 @@ def list(cls, args):
print(file)


class Search:
@classmethod
def create_alpha(cls, args):
resp = openai.Search.create_alpha(
query=[args.query],
max_documents=args.max_documents,
file_id=args.file,
)
print(resp)


class FineTune:
@classmethod
def list(cls, args):
Expand Down Expand Up @@ -589,6 +602,11 @@ def help(args):
type=bool,
default=False,
)
sub.add_argument(
"--version",
help="The version of the search routing to use",
)

sub.add_argument("-q", "--query", required=True, help="Search query")
sub.set_defaults(func=Engine.search)

Expand Down Expand Up @@ -688,6 +706,30 @@ def help(args):
sub = subparsers.add_parser("files.list")
sub.set_defaults(func=File.list)

# Search
sub = subparsers.add_parser("search.create_alpha")

sub.add_argument(
"-f",
"--file",
required=True,
help="ID for previously uploaded file that contains the documents you want to search",
)
sub.add_argument(
"-m",
"--max_documents",
help="The maximum number of documents to return",
type=int,
default=200,
)
sub.add_argument(
"-q",
"--query",
required=True,
help="Search query",
)
sub.set_defaults(func=Search.create_alpha)

# Finetune
sub = subparsers.add_parser("fine_tunes.list")
sub.set_defaults(func=FineTune.list)
Expand Down
2 changes: 1 addition & 1 deletion openai/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
VERSION = "0.10.3"
VERSION = "0.10.4"

0 comments on commit 205d063

Please sign in to comment.