MicrosoftDocs / semantic-kernel-docs

Semantic Kernel (SK) is a lightweight SDK enabling integration of AI Large Language Models (LLMs) with conventional programming languages.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

add_completion_service does not work if GLOBAL__LLM_SERVICE is OpenAI

abdulrahmanalbaba opened this issue · comments

This code throws an error ValueError: TextCompletionClientBase service with service_id 'None' not found

else:
        model_id = config.get("OPEN_AI__MODEL_TYPE", None)

        if model_id == "chat-completion":
            kernel = sk.Kernel()
            kernel.add_chat_service(
                "chat_completion",
                OpenAIChatCompletion(
                    config.get("OPEN_AI__CHAT_COMPLETION_MODEL_ID", None),
                    config.get("OPEN_AI__API_KEY", None),
                    config.get("OPEN_AI__ORG_ID", None),
                ),
            )
        else:
            kernel = sk.Kernel()
            kernel.add_text_completion_service(
                "text_completion",
                OpenAITextCompletion(
                    config.get("OPEN_AI__TEXT_COMPLETION_MODEL_ID", None),
                    config.get("OPEN_AI__API_KEY", None),
                    config.get("OPEN_AI__ORG_ID", None),
                ),
            )

To fix this, use self in lines 43 and 53 instead of creating a new kernel

else:
        model_id = config.get("OPEN_AI__MODEL_TYPE", None)

        if model_id == "chat-completion":
          
            self.add_chat_service(
                "chat_completion",
                OpenAIChatCompletion(
                    config.get("OPEN_AI__CHAT_COMPLETION_MODEL_ID", None),
                    config.get("OPEN_AI__API_KEY", None),
                    config.get("OPEN_AI__ORG_ID", None),
                ),
            )
        else:
            
            self.add_text_completion_service(
                "text_completion",
                OpenAITextCompletion(
                    config.get("OPEN_AI__TEXT_COMPLETION_MODEL_ID", None),
                    config.get("OPEN_AI__API_KEY", None),
                    config.get("OPEN_AI__ORG_ID", None),
                ),
            )